
/* 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<64> * this, Symbol_table * symtab,
   Layout * layout, Sized_relobj_file<64,_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<64>::gc_process_relocs
          (Target_x86_64<64> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<64,_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)

{
  pointer puVar1;
  pointer ppSVar2;
  _Base_ptr p_Var3;
  Target *pTVar4;
  Garbage_collection *pGVar5;
  undefined4 *puVar6;
  _func_int_varargs *p_Var7;
  pointer *ppuVar8;
  Icf *pIVar9;
  undefined1 *puVar10;
  Parameters *pPVar11;
  size_t sVar12;
  _func_int_varargs **pp_Var13;
  Xindex *pXVar14;
  pointer pcVar15;
  _Rb_tree_header *extraout_ECX;
  _Rb_tree_header *extraout_ECX_00;
  _Rb_tree_header *extraout_ECX_01;
  _Rb_tree_header *extraout_ECX_02;
  _Rb_tree_header *p_Var16;
  _Rb_tree_header *extraout_ECX_03;
  _Rb_tree_header *p_Var17;
  _Rb_tree_header *extraout_ECX_04;
  _Rb_tree_header *extraout_ECX_05;
  _Base_ptr p_Var18;
  _Rb_tree_header *extraout_ECX_06;
  _Rb_tree_header *extraout_ECX_07;
  _Rb_tree_header *extraout_ECX_08;
  _Rb_tree_header *extraout_ECX_09;
  int iVar19;
  _Rb_tree_header *extraout_ECX_10;
  byte bVar20;
  uint uVar21;
  undefined4 *puVar22;
  undefined4 *puVar23;
  Relobj *pRVar24;
  undefined **ppuVar25;
  byte *pbVar26;
  pointer ppOVar27;
  _func_int_varargs **pp_Var28;
  _Alloc_hider _Var29;
  bool bVar30;
  bool bVar31;
  bool bVar32;
  byte bVar33;
  undefined1 auStack_fc [4];
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_f8;
  __node_gen_type *local_f4;
  _Rb_tree_header *local_f0;
  Reloc_addend_size_info *local_ec;
  Addend_info *local_e8;
  Relobj *local_e4;
  Compressed_section_map *local_e0;
  size_t local_dc;
  undefined1 *local_d8;
  Offset_info *local_d4;
  Symbol_info *local_d0;
  _func_int_varargs **local_cc;
  mapped_type *local_c8;
  Parameters **local_c4;
  bool local_bf;
  char local_be;
  byte local_bd;
  int local_bc;
  int local_b8;
  pointer local_b4;
  __bucket_type *local_b0;
  Output_segment *local_ac;
  Relobj *local_a8;
  undefined **local_a4;
  Icf *local_a0;
  undefined1 *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<64,_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;
  
  bVar33 = 0;
  local_a4 = &_GLOBAL_OFFSET_TABLE_;
  if (sh_type == 9) {
    return;
  }
  local_c4 = &gold::parameters;
  if (gold::parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (gold::parameters->options_->icf_status_ == ICF_NONE) {
    local_f8 = &src_section_name.field_2;
    src_section_name._M_dataplus._M_p = (pointer)local_f8;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"","");
    puVar23 = (undefined4 *)auStack_fc;
    p_Var16 = extraout_ECX_01;
  }
  else {
    (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])
              (&src_section_name,object,data_shndx);
    local_f8 = &src_section_name.field_2;
    puVar23 = (undefined4 *)&stack0xffffff00;
    p_Var16 = extraout_ECX;
  }
  _Var29._M_p = src_section_name._M_dataplus._M_p;
  pPVar11 = *local_c4;
  if (pPVar11->options_ == (General_options *)0x0) {
    *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;
    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;
    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e857;
    gold::do_gold_unreachable
              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
               *(char **)((int)puVar23 + -8));
  }
  if (pPVar11->options_->icf_status_ == ICF_NONE) {
LAB_0008d94f:
    local_be = '\0';
    local_ec = (Reloc_addend_size_info *)0x0;
    local_d4 = (Offset_info *)0x0;
    local_e8 = (Addend_info *)0x0;
    local_d0 = (Symbol_info *)0x0;
    local_c8 = (mapped_type *)0x0;
  }
  else {
    local_a8 = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar15 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e647;
      sVar12 = strlen(*(char **)((int)puVar23 + -0x10));
      pcVar15 = _Var29._M_p + sVar12;
    }
    *(undefined4 *)((int)puVar23 + -4) = 0;
    *(pointer *)((int)puVar23 + -8) = pcVar15;
    local_a0 = (Icf *)&src_id;
    *(pointer *)((int)puVar23 + -0xc) = _Var29._M_p;
    *(Icf **)((int)puVar23 + -0x10) = local_a0;
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e65f;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar19 = 5;
    bVar30 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10);
    bVar32 = puVar23 == (undefined4 *)0x0;
    ppuVar25 = local_a4 + -0x67293;
    pRVar24 = src_id.first;
    do {
      if (iVar19 == 0) break;
      iVar19 = iVar19 + -1;
      bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;
      bVar30 = *(byte *)ppuVar25 < bVar20;
      bVar32 = *(byte *)ppuVar25 == bVar20;
      ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);
      pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);
    } while (bVar32);
    bVar31 = false;
    bVar30 = (!bVar30 && !bVar32) == bVar30;
    if (!bVar30) {
      p_Var16 = (_Rb_tree_header *)0xf;
      pbVar26 = (byte *)((int)local_a4 + -0x19ca46);
      pRVar24 = src_id.first;
      do {
        if (p_Var16 == (_Rb_tree_header *)0x0) break;
        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;
        bVar31 = *pbVar26 < bVar20;
        bVar30 = *pbVar26 == bVar20;
        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);
      } while (bVar30);
      if ((!bVar31 && !bVar30) != bVar31) {
        if (src_id.first == local_a8) {
          pPVar11 = *local_c4;
        }
        else {
          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;
          operator_delete(*(void **)((int)puVar23 + -0x10));
          pPVar11 = *local_c4;
          p_Var16 = extraout_ECX_10;
        }
        goto LAB_0008d94f;
      }
    }
    if (src_id.first != local_a8) {
      *(Relobj **)((int)puVar23 + -0x10) = src_id.first;
      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;
      operator_delete(*(void **)((int)puVar23 + -0x10));
    }
    *(Icf **)((int)puVar23 + -0xc) = local_a0;
    src_id.first = (Relobj *)object;
    src_id.second = data_shndx;
    local_a0 = symtab->icf_;
    *(Reloc_info_list **)((int)puVar23 + -0x10) = &symtab->icf_->reloc_info_list_;
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e6d4;
    local_c8 = 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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -0xc));
    p_Var16 = (_Rb_tree_header *)&local_c8->offset_info;
    local_d0 = &local_c8->symbol_info;
    local_ec = &local_c8->reloc_addend_size_info;
    local_e8 = &local_c8->addend_info;
    local_d4 = (Offset_info *)p_Var16;
    pPVar11 = *local_c4;
    local_be = '\x01';
  }
  if (pPVar11->options_ == (General_options *)0x0) {
    *(undefined4 *)((int)puVar23 + -4) = 0;
    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;
    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e873;
    gold::do_gold_unreachable
              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
               *(char **)((int)puVar23 + -8));
  }
  local_bf = false;
  if (pPVar11->options_->icf_status_ == ICF_SAFE) {
    *(Target_x86_64<64> **)((int)puVar23 + -0x10) = this;
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e56b;
    local_bf = do_can_check_for_function_pointers(*(Target_x86_64<64> **)((int)puVar23 + -0x10));
    bVar30 = false;
    bVar32 = !local_bf;
    p_Var16 = extraout_ECX_09;
    if (!bVar32) {
      p_Var16 = (_Rb_tree_header *)0xc;
      local_bf = false;
      ppuVar25 = local_a4 + -0x66894;
      _Var29 = src_section_name._M_dataplus;
      do {
        if (p_Var16 == (_Rb_tree_header *)0x0) break;
        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;
        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;
        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);
        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
      } while (bVar32);
      bVar31 = false;
      bVar30 = (!bVar30 && !bVar32) == bVar30;
      if (!bVar30) {
        p_Var16 = (_Rb_tree_header *)0x11;
        pbVar26 = (byte *)((int)local_a4 + -0x19a243);
        _Var29 = src_section_name._M_dataplus;
        do {
          if (p_Var16 == (_Rb_tree_header *)0x0) break;
          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
          bVar31 = *pbVar26 < (byte)*_Var29._M_p;
          bVar30 = *pbVar26 == *_Var29._M_p;
          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
        } while (bVar30);
        bVar32 = false;
        bVar30 = (!bVar31 && !bVar30) == bVar31;
        if (!bVar30) {
          p_Var16 = (_Rb_tree_header *)0xc;
          pbVar26 = (byte *)((int)local_a4 + -0x19a231);
          _Var29 = src_section_name._M_dataplus;
          do {
            if (p_Var16 == (_Rb_tree_header *)0x0) break;
            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
            bVar32 = *pbVar26 < (byte)*_Var29._M_p;
            bVar30 = *pbVar26 == *_Var29._M_p;
            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
          } while (bVar30);
          bVar31 = false;
          bVar30 = (!bVar32 && !bVar30) == bVar32;
          if (!bVar30) {
            p_Var16 = (_Rb_tree_header *)0x11;
            ppuVar25 = local_a4 + -0x66889;
            _Var29 = src_section_name._M_dataplus;
            do {
              if (p_Var16 == (_Rb_tree_header *)0x0) break;
              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;
              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;
              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);
              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
            } while (bVar30);
            bVar32 = false;
            bVar30 = (!bVar31 && !bVar30) == bVar31;
            if (!bVar30) {
              p_Var16 = (_Rb_tree_header *)0x9;
              pbVar26 = (byte *)((int)local_a4 + -0x19a212);
              _Var29 = src_section_name._M_dataplus;
              do {
                if (p_Var16 == (_Rb_tree_header *)0x0) break;
                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
                bVar32 = *pbVar26 < (byte)*_Var29._M_p;
                bVar30 = *pbVar26 == *_Var29._M_p;
                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
              } while (bVar30);
              local_bf = (!bVar32 && !bVar30) != bVar32;
            }
          }
        }
      }
    }
  }
  if (reloc_count != 0) {
    local_cc = (_func_int_varargs **)0x0;
    local_d8 = local_94;
    local_dc = 0;
    local_f4 = &__node_gen;
    do {
      local_f0 = *(_Rb_tree_header **)(prelocs + 8);
      uVar21 = *(uint *)(prelocs + 0xc);
      local_b4 = *(pointer *)(prelocs + 0x10);
      local_b0 = *(__bucket_type **)(prelocs + 0x14);
      if (uVar21 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;
          *(undefined4 *)((int)puVar23 + -0xc) = 0xea;
          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e764;
          gold::do_gold_unreachable
                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                     *(char **)((int)puVar23 + -8));
        }
        local_ac = (Output_segment *)(plocal_symbols + uVar21 * 0x18);
        local_a8 = (Relobj *)
                   (uint)*(ushort *)
                          ((int)&local_ac->output_lists_[0].
                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                 ._M_impl._M_finish + 2);
        if (local_a8 < (Relobj *)0xff00) {
LAB_0008db84:
          pRVar24 = (Relobj *)
                    local_ac->output_lists_[0].
                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                    _M_impl._M_end_of_storage;
          ppOVar27 = local_ac->output_lists_[1].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_start;
          local_bc = (int)&local_b4->first + (int)pRVar24;
          local_b8 = (int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;
          if (local_be != '\0') {
            src_id.first = (Relobj *)object;
            src_id.second = (uint)local_a8;
            *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;
            *(mapped_type **)((int)puVar23 + -0x10) = local_c8;
            local_a0 = (Icf *)&src_id;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dbe0;
            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)puVar23 + -0x10),
                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));
            bVar30 = true;
            goto LAB_0008da46;
          }
        }
        else {
          if (local_a8 == (Relobj *)0xffff) {
            pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;
            if (pXVar14 == (Xindex *)0x0) {
              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                         _vptr_Object;
              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;
              p_Var7 = pp_Var13[0x1b];
              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;
              pXVar14 = (Xindex *)(*p_Var7)();
              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;
            }
            *(uint *)((int)puVar23 + -8) = uVar21;
            *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;
            *(Xindex **)((int)puVar23 + -0x10) = pXVar14;
                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;
            local_a8 = (Relobj *)
                       gold::Xindex::sym_xindex_to_shndx
                                 (*(Xindex **)((int)puVar23 + -0x10),
                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));
            p_Var16 = extraout_ECX_02;
            goto LAB_0008db84;
          }
          pRVar24 = (Relobj *)
                    local_ac->output_lists_[0].
                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                    _M_impl._M_end_of_storage;
          ppOVar27 = local_ac->output_lists_[1].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_start;
          local_bc = (int)&local_b4->first + (int)pRVar24;
          local_b8 = (int)*(__bucket_type **)(prelocs + 0x14) +
                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;
          if (local_be == '\0') goto LAB_0008db0d;
          src_id.first = (Relobj *)0x0;
          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;
          src_id.second = 0;
          local_a0 = (Icf *)&src_id;
                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8da41;
          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)puVar23 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));
          bVar30 = false;
LAB_0008da46:
          local_bd = *(byte *)&local_ac->output_lists_[0].
                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                               ._M_impl._M_finish;
          if ((local_bd & 0xf) == 3) {
            *(Icf **)((int)puVar23 + -0xc) = local_a0;
            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;
            src_id.first = (Relobj *)0xffffffff;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));
          }
          else {
            *(Icf **)((int)puVar23 + -0xc) = local_a0;
            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;
            src_id.first = (Relobj *)0x0;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));
          }
          src_id.first = pRVar24;
          *(Icf **)((int)puVar23 + -0xc) = local_a0;
          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;
          src_id.second = (uint)ppOVar27;
          local_2c = local_b4;
          local_28._M_p = (pointer)local_b0;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8daab;
          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)puVar23 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));
          if (*(int *)(prelocs + 4) != 0) {
            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;
            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;
            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                       *(char **)((int)puVar23 + -8));
          }
          src_id.first = *(Relobj **)prelocs;
          src_id.second = 0;
          puVar1 = (local_d4->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          if (puVar1 == (local_d4->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)puVar23 + -8) = local_a0;
            *(pointer *)((int)puVar23 + -0xc) = puVar1;
            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;
            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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),
                       *(ulonglong **)((int)puVar23 + -8));
          }
          else {
            *(Relobj **)puVar1 = *(Relobj **)prelocs;
            *(undefined4 *)((int)puVar1 + 4) = 0;
            (local_d4->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar1 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8db02;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)
                     ,*(uint **)((int)puVar23 + -0xc));
          p_Var16 = extraout_ECX_00;
          if (!bVar30) goto LAB_0008db0d;
        }
        if (local_bf != false) {
          bVar20 = *(byte *)&local_ac->output_lists_[0].
                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                             ._M_impl._M_finish;
          local_a0 = (Icf *)CONCAT31(local_a0._1_3_,bVar20);
          if ((bVar20 & 0xf) != 1) {
            if ((*local_c4)->options_ == (General_options *)0x0) {
              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;
              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;
              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;
              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;
              gold::do_gold_unreachable
                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                         *(char **)((int)puVar23 + -8));
            }
            if (((*local_c4)->options_->shared_).value == false) {
              p_Var16 = local_f0;
              if (local_f0 < (_Rb_tree_header *)0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();
                return;
              }
            }
            else {
              local_a0 = symtab->icf_;
              local_6c = object;
              local_68 = (uint)*(ushort *)
                                ((int)&local_ac->output_lists_[0].
                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                       ._M_impl._M_finish + 2);
              *(undefined4 *)((int)puVar23 + -0xc) = 1;
              *(undefined4 *)((int)puVar23 + -0x10) = 0;
              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;
              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;
              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;
              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;
              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;
              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>_>_>_>
                        ();
              puVar23 = (undefined4 *)((int)puVar23 + -4);
              p_Var16 = extraout_ECX_08;
            }
          }
        }
        if ((Relobj *)data_shndx != local_a8) {
          local_ac = (Output_segment *)object;
          puVar22 = puVar23;
LAB_0008de7e:
          if ((*local_c4)->options_ == (General_options *)0x0) {
            puVar22[-2] = local_a4 + -0x65b32;
            puVar22[-3] = 0x5c;
            puVar22[-4] = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            puVar22[-5] = 0x8e782;
            gold::do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2]);
          }
          puVar23 = puVar22;
          if (((*local_c4)->options_->gc_sections_).value != false) {
            src_id_1.first = (Relobj *)object;
            p_Var16 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
            src_id_1.second = data_shndx;
            dst_id.first = (Relobj *)local_ac;
            dst_id.second = (uint)local_a8;
            p_Var3 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            p_Var18 = &p_Var16->_M_header;
            if (p_Var3 == (_Base_ptr)0x0) {
LAB_0008df10:
              puVar22[-4] = &local_74;
              local_74 = &src_id_1;
              puVar22[-5] = 0x8df2b;
              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>_>_>_>_>_>
                          *)puVar22[-4],(_Base_ptr)puVar22[-3],
                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-2],
                         (tuple<> *)puVar22[-1],(piecewise_construct_t *)*puVar22);
              p_Var17 = local_98;
            }
            else {
              do {
                while ((p_Var17 = (_Rb_tree_header *)p_Var3,
                       object <= (Sized_relobj_file<64,_false> *)
                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&
                       ((object != (Sized_relobj_file<64,_false> *)
                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||
                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {
                  p_Var3 = (p_Var17->_M_header)._M_left;
                  p_Var18 = &p_Var17->_M_header;
                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008defa;
                }
                p_Var3 = (_Base_ptr)
                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->
                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.
                         _M_start;
                p_Var17 = (_Rb_tree_header *)p_Var18;
              } while (p_Var3 != (_Base_ptr)0x0);
LAB_0008defa:
              if (((p_Var16 == p_Var17) ||
                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||
                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&
                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;
            }
            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);
            puVar22[-3] = 1;
            puVar22[-4] = 0;
            puVar22[-5] = local_f4;
            puVar22[-6] = &dst_id;
            puVar22[-7] = __node_gen._M_h;
            puVar22[-8] = local_d8;
            puVar22[-9] = 0x8df57;
            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>_>_>_>
                      ();
            pTVar4 = (*local_c4)->target_;
            if (pTVar4 == (Target *)0x0) {
              puVar22[-3] = local_a4 + -0x65db8;
              puVar22[-4] = 0x73;
              puVar22[-5] = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              puVar22[-6] = 0x8e7e2;
              gold::do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3]);
            }
            ppuVar25 = (undefined **)pTVar4->_vptr_Target[0x41];
            p_Var16 = (_Rb_tree_header *)(local_a4 + -0x1569f4);
            if ((_Rb_tree_header *)ppuVar25 != p_Var16) {
              puVar22[-2] = local_b8;
              puVar22[-3] = local_bc;
              puVar22[-4] = local_a8;
              puVar22[-5] = local_ac;
              puVar22[-6] = data_shndx;
              puVar22[-7] = object;
              puVar22[-8] = symtab;
              puVar22[-9] = pTVar4;
              puVar22[-10] = 0x8e0fc;
              (*(code *)ppuVar25)();
              p_Var16 = extraout_ECX_07;
            }
            pp_Var13 = local_cc;
            puVar23 = puVar22 + -1;
            if (local_cc != (_func_int_varargs **)0x0) {
              local_a8 = (Relobj *)&local_2c;
              pGVar5 = symtab->gc_;
              puVar22[-5] = local_cc;
              src_id.first = (Relobj *)&local_2c;
              local_a0 = (Icf *)&src_id;
              puVar22[-6] = 0x8dfc4;
              sVar12 = strlen((char *)puVar22[-5]);
              pIVar9 = local_a0;
              puVar22[-2] = 0;
              puVar22[-3] = (byte *)((int)pp_Var13 + sVar12);
              puVar22[-4] = pp_Var13;
              puVar22[-5] = local_a0;
              puVar22[-6] = 0x8dfd9;
              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
              _M_construct<char_const*>();
              puVar22[-3] = pIVar9;
              puVar22[-4] = &pGVar5->cident_sections_;
              puVar22[-5] = &local_9c;
              puVar22[-6] = 0x8dfed;
              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>_>_>_>_>_>
                      *)puVar22[-5],
                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     puVar22[-4]);
              puVar10 = local_9c;
              p_Var16 = extraout_ECX_04;
              if (src_id.first != local_a8) {
                puVar22[-6] = src_id.first;
                puVar22[-7] = 0x8e010;
                operator_delete((void *)puVar22[-6]);
                p_Var16 = extraout_ECX_05;
              }
              puVar23 = puVar22 + -2;
              pGVar5 = symtab->gc_;
              if ((_Rb_tree_header *)puVar10 !=
                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
                src_id.first = (Relobj *)object;
                src_id.second = data_shndx;
                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                         _M_parent;
                p_Var18 = &p_Var17->_M_header;
                if (p_Var3 == (_Base_ptr)0x0) {
LAB_0008e140:
                  puVar22[-6] = &local_70;
                  local_70 = local_a0;
                  puVar22[-7] = 0x8e15e;
                  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>_>_>_>_>_>
                              *)puVar22[-6],(_Base_ptr)puVar22[-5],
                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],
                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);
                  p_Var16 = local_98;
                }
                else {
                  do {
                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,
                           object <= (Sized_relobj_file<64,_false> *)
                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&
                           ((object != (Sized_relobj_file<64,_false> *)
                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||
                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {
                      p_Var3 = (p_Var16->_M_header)._M_left;
                      p_Var18 = &p_Var16->_M_header;
                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;
                    }
                    p_Var3 = (_Base_ptr)
                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->
                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).
                             _M_impl._M_start;
                    p_Var16 = (_Rb_tree_header *)p_Var18;
                  } while (p_Var3 != (_Base_ptr)0x0);
LAB_0008e06a:
                  if (((p_Var16 == p_Var17) ||
                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||
                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&
                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;
                }
                puVar23 = puVar22 + -2;
                ppuVar8 = (pointer *)(p_Var16 + 1);
                puVar22 = puVar22 + -2;
                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;
                    puVar6 = (undefined4 *)*puVar6) {
                  *(undefined4 *)((int)puVar22 + -0xc) = 1;
                  *(undefined4 *)((int)puVar22 + -0x10) = 0;
                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;
                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;
                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;
                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;
                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;
                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);
                  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>_>_>_>
                            ();
                  puVar23 = (undefined4 *)((int)puVar22 + -4);
                  p_Var16 = extraout_ECX_06;
                  puVar22 = (undefined4 *)((int)puVar22 + -4);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar21 < object->local_symbol_count_) {
          src_id_1.first = (Relobj *)0x0;
LAB_0008e2a7:
          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;
          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;
          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;
          gold::do_gold_unreachable
                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                     *(char **)((int)puVar23 + -8));
        }
        uVar21 = uVar21 - object->local_symbol_count_;
        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {
          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;
          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;
          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;
          gold::do_gold_unreachable
                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                     *(char **)((int)puVar23 + -8));
        }
        src_id_1.first = (Relobj *)ppSVar2[uVar21];
        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;
          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;
          src_id_1.first =
               (Relobj *)
               gold::Symbol_table::resolve_forwards
                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)
                         );
        }
        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;
          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          local_bc = (int)&local_b4->first + (int)local_e4;
          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);
          bVar30 = false;
          bVar32 = ((uint)local_ac->output_lists_[3].
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_end_of_storage & 1) == 0;
          if (bVar32) {
            local_a8 = (Relobj *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;
            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;
            bVar30 = bVar20 < 2;
            bVar32 = bVar20 == 2;
            if (bVar32) {
              bVar30 = false;
              bVar32 = local_bf == false;
              if (!bVar32) {
                if (local_bd != 0) {
                  if ((*local_c4)->options_ == (General_options *)0x0) {
                    *(undefined4 *)((int)puVar23 + -4) = 0;
                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;
                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;
                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;
                    gold::do_gold_unreachable
                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                               *(char **)((int)puVar23 + -8));
                  }
                  if ((((*local_c4)->options_->shared_).value == false) ||
                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {
                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;
                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;
                    if (local_f0 < (_Rb_tree_header *)0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))
                                ();
                      return;
                    }
                    goto _L7330;
                  }
                }
                local_a0 = symtab->icf_;
                *(undefined4 *)((int)puVar23 + -0xc) = 1;
                *(undefined4 *)((int)puVar23 + -0x10) = 0;
                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;
                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;
                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;
                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;
                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;
                local_64 = local_ac;
                local_60 = local_a8;
                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>_>_>_>
                          ();
                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);
                bVar32 = puVar23 == (undefined4 *)0x4;
                puVar23 = (undefined4 *)((int)puVar23 + -4);
              }
            }
          }
          else {
            local_bd = 0;
            local_a8 = (Relobj *)0x0;
            local_ac = (Output_segment *)0x0;
          }
        }
        else {
          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;
          local_bd = 0;
          local_a8 = (Relobj *)0x0;
          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||
                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))
          ;
          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);
          bVar32 = local_b8 == 0;
          local_bc = (int)&local_b4->first + (int)local_e4;
          local_ac = (Output_segment *)0x0;
        }
_L7330:
        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;
        p_Var16 = (_Rb_tree_header *)&DAT_00000008;
        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);
        pp_Var28 = pp_Var13;
        do {
          if (p_Var16 == (_Rb_tree_header *)0x0) break;
          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
          bVar30 = *pbVar26 < *(byte *)pp_Var28;
          bVar32 = *pbVar26 == *(byte *)pp_Var28;
          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);
        } while (bVar32);
        bVar31 = false;
        bVar30 = (!bVar30 && !bVar32) == bVar30;
        if (bVar30) {
          local_cc = pp_Var13 + 2;
        }
        else {
          p_Var16 = (_Rb_tree_header *)0x7;
          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);
          pp_Var28 = pp_Var13;
          do {
            if (p_Var16 == (_Rb_tree_header *)0x0) break;
            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
            bVar31 = *pbVar26 < *(byte *)pp_Var28;
            bVar30 = *pbVar26 == *(byte *)pp_Var28;
            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);
          } while (bVar30);
          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);
          if ((!bVar31 && !bVar30) != bVar31) {
            pp_Var13 = local_cc;
          }
          local_cc = pp_Var13;
        }
        if (local_be != '\0') {
          if (local_bd == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_ac;
            src_id.second = (uint)local_a8;
          }
          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;
          local_a0 = (Icf *)&src_id;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;
          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)puVar23 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));
          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                    _M_impl._M_finish;
          if (ppSVar2 ==
              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            *(Section_id **)((int)puVar23 + -8) = &src_id_1;
            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;
            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),
                       *(Symbol ***)((int)puVar23 + -8));
          }
          else {
            *ppSVar2 = (Symbol *)src_id_1.first;
            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar2 + 1;
          }
          *(Icf **)((int)puVar23 + -0xc) = local_a0;
          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;
          src_id.first = local_e4;
          src_id.second = (uint)local_e0;
          local_2c = local_b4;
          local_28._M_p = (pointer)local_b0;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;
          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)puVar23 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));
          if (*(int *)(prelocs + 4) != 0) {
            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;
            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;
            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                       *(char **)((int)puVar23 + -8));
          }
          src_id.first = *(Relobj **)prelocs;
          src_id.second = 0;
          puVar1 = (local_d4->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          if (puVar1 == (local_d4->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)puVar23 + -8) = local_a0;
            *(pointer *)((int)puVar23 + -0xc) = puVar1;
            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;
            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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),
                       *(ulonglong **)((int)puVar23 + -8));
          }
          else {
            *(Relobj **)puVar1 = *(Relobj **)prelocs;
            *(undefined4 *)((int)puVar1 + 4) = 0;
            (local_d4->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar1 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)
                     ,*(uint **)((int)puVar23 + -0xc));
          p_Var16 = extraout_ECX_03;
        }
        puVar22 = puVar23;
        if (local_bd != 0) goto LAB_0008de7e;
      }
LAB_0008db0d:
      local_dc = local_dc + 1;
      prelocs = prelocs + 0x18;
    } while (reloc_count != local_dc);
  }
  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_f8) {
    *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc0a;
    operator_delete(*(void **)((int)puVar23 + -0x10));
  }
  return;
}



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

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

{
  undefined **ppuVar1;
  undefined4 *puVar2;
  int *piVar3;
  int iVar4;
  code *pcVar5;
  uint **ppuVar6;
  size_t sVar7;
  uint uVar8;
  byte *pbVar9;
  undefined **extraout_ECX;
  undefined **extraout_ECX_00;
  undefined **extraout_ECX_01;
  undefined **extraout_ECX_02;
  undefined **ppuVar10;
  undefined **extraout_ECX_03;
  undefined **ppuVar11;
  undefined **extraout_ECX_04;
  undefined **extraout_ECX_05;
  undefined **ppuVar12;
  undefined **extraout_ECX_06;
  undefined **extraout_ECX_07;
  undefined **extraout_ECX_08;
  undefined **extraout_ECX_09;
  int iVar13;
  undefined **extraout_ECX_10;
  byte bVar14;
  uint uVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  uint *puVar18;
  undefined **ppuVar19;
  byte *pbVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  undefined1 auStack_fc [4];
  byte *local_f8;
  undefined ***local_f4;
  undefined **local_f0;
  int local_ec;
  int local_e8;
  uint *local_e4;
  uint local_e0;
  int local_dc;
  undefined1 *local_d8;
  undefined **local_d4;
  int local_d0;
  byte *local_cc;
  int local_c8;
  int *local_c4;
  char local_bf;
  char local_be;
  byte local_bd;
  int local_bc;
  int local_b8;
  uint local_b4;
  uint local_b0;
  uint *local_ac;
  uint *local_a8;
  undefined **local_a4;
  uint **local_a0;
  int local_9c;
  undefined **local_98;
  undefined1 local_94 [8];
  uint **local_8c;
  uint **local_88;
  undefined **local_84 [3];
  undefined **local_78;
  uint **local_74;
  uint **local_70;
  uint *local_6c;
  uint local_68;
  uint *local_64;
  uint *local_60;
  uint *local_5c;
  uint *local_58;
  uint *local_54;
  uint *local_50;
  byte *local_4c [2];
  byte local_44 [16];
  uint *local_34;
  uint *local_30;
  uint local_2c;
  uint local_28;
  
  bVar25 = 0;
  local_a4 = &__DT_PLTGOT;
  if (param_6 == 9) {
    return;
  }
  local_c4 = &DAT_005ea7c8;
  if (*(int *)(DAT_005ea7c8 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {
    local_f8 = local_44;
    local_4c[0] = local_f8;
    FUN_00072b90(local_4c,"","");
    puVar17 = auStack_fc;
    ppuVar10 = extraout_ECX_01;
  }
  else {
    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);
    local_f8 = local_44;
    puVar17 = &stack0xffffff00;
    ppuVar10 = extraout_ECX;
  }
  pbVar20 = local_4c[0];
  iVar13 = *local_c4;
  if (*(int *)(iVar13 + 8) == 0) {
    *(undefined ***)(puVar17 + -4) = ppuVar10;
    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)(puVar17 + -0xc) = 0x5c;
    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */
    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;
    FUN_002446e0();
  }
  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {
LAB_0008d94f:
    local_be = '\0';
    local_ec = 0;
    local_d4 = (undefined **)0x0;
    local_e8 = 0;
    local_d0 = 0;
    local_c8 = 0;
  }
  else {
    local_a8 = &local_2c;
    local_34 = local_a8;
    pbVar9 = (byte *)0xffffffff;
    if (local_4c[0] != (byte *)0x0) {
      *(byte **)(puVar17 + -0x10) = local_4c[0];
      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;
      sVar7 = strlen(*(char **)(puVar17 + -0x10));
      pbVar9 = pbVar20 + sVar7;
    }
    *(undefined4 *)(puVar17 + -4) = 0;
    *(byte **)(puVar17 + -8) = pbVar9;
    local_a0 = &local_34;
    *(byte **)(puVar17 + -0xc) = pbVar20;
    *(uint ***)(puVar17 + -0x10) = local_a0;
    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;
    FUN_00072b90();
    iVar13 = 5;
    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;
    bVar24 = puVar17 == (undefined1 *)0x0;
    ppuVar10 = local_a4 + -0x67293;
    puVar18 = local_34;
    do {
      if (iVar13 == 0) break;
      iVar13 = iVar13 + -1;
      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;
      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;
      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);
      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);
    } while (bVar24);
    bVar23 = false;
    bVar22 = (!bVar22 && !bVar24) == bVar22;
    if (!bVar22) {
      ppuVar10 = (undefined **)0xf;
      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);
      puVar18 = local_34;
      do {
        if (ppuVar10 == (undefined **)0x0) break;
        ppuVar10 = (undefined **)((int)ppuVar10 + -1);
        bVar23 = *pbVar20 < (byte)*puVar18;
        bVar22 = *pbVar20 == (byte)*puVar18;
        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);
      } while (bVar22);
      if ((!bVar23 && !bVar22) != bVar23) {
        if (local_34 == local_a8) {
          iVar13 = *local_c4;
        }
        else {
          *(uint **)(puVar17 + -0x10) = local_34;
          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;
          FUN_003ae080();
          iVar13 = *local_c4;
          ppuVar10 = extraout_ECX_10;
        }
        goto LAB_0008d94f;
      }
    }
    if (local_34 != local_a8) {
      *(uint **)(puVar17 + -0x10) = local_34;
      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;
      FUN_003ae080();
    }
    *(uint ***)(puVar17 + -0xc) = local_a0;
    local_34 = param_4;
    local_30 = param_5;
    local_a0 = *(uint ***)(param_2 + 0x15c);
    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;
    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;
    local_c8 = FUN_00074520();
    local_d0 = local_c8 + 0xc;
    local_e8 = local_c8 + 0x18;
    ppuVar10 = (undefined **)(local_c8 + 0x24);
    local_ec = local_c8 + 0x30;
    iVar13 = *local_c4;
    local_be = '\x01';
    local_d4 = ppuVar10;
  }
  if (*(int *)(iVar13 + 8) == 0) {
    *(undefined4 *)(puVar17 + -4) = 0;
    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)(puVar17 + -0xc) = 0x5c;
    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;
    FUN_002446e0();
  }
  local_bf = '\0';
  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {
    *(undefined4 *)(puVar17 + -0x10) = param_1;
    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;
    local_bf = FUN_000752e0();
    bVar22 = false;
    bVar24 = local_bf == '\0';
    ppuVar10 = extraout_ECX_09;
    if (!bVar24) {
      ppuVar10 = (undefined **)0xc;
      local_bf = '\0';
      ppuVar19 = local_a4 + -0x66894;
      pbVar20 = local_4c[0];
      do {
        if (ppuVar10 == (undefined **)0x0) break;
        ppuVar10 = (undefined **)((int)ppuVar10 + -1);
        bVar22 = *(byte *)ppuVar19 < *pbVar20;
        bVar24 = *(byte *)ppuVar19 == *pbVar20;
        ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);
        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
      } while (bVar24);
      bVar23 = false;
      bVar22 = (!bVar22 && !bVar24) == bVar22;
      if (!bVar22) {
        ppuVar10 = (undefined **)0x11;
        pbVar20 = (byte *)((int)local_a4 + -0x19a243);
        pbVar9 = local_4c[0];
        do {
          if (ppuVar10 == (undefined **)0x0) break;
          ppuVar10 = (undefined **)((int)ppuVar10 + -1);
          bVar23 = *pbVar20 < *pbVar9;
          bVar22 = *pbVar20 == *pbVar9;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
        } while (bVar22);
        bVar24 = false;
        bVar22 = (!bVar23 && !bVar22) == bVar23;
        if (!bVar22) {
          ppuVar10 = (undefined **)0xc;
          pbVar20 = (byte *)((int)local_a4 + -0x19a231);
          pbVar9 = local_4c[0];
          do {
            if (ppuVar10 == (undefined **)0x0) break;
            ppuVar10 = (undefined **)((int)ppuVar10 + -1);
            bVar24 = *pbVar20 < *pbVar9;
            bVar22 = *pbVar20 == *pbVar9;
            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
          } while (bVar22);
          bVar23 = false;
          bVar22 = (!bVar24 && !bVar22) == bVar24;
          if (!bVar22) {
            ppuVar10 = (undefined **)0x11;
            ppuVar19 = local_a4 + -0x66889;
            pbVar20 = local_4c[0];
            do {
              if (ppuVar10 == (undefined **)0x0) break;
              ppuVar10 = (undefined **)((int)ppuVar10 + -1);
              bVar23 = *(byte *)ppuVar19 < *pbVar20;
              bVar22 = *(byte *)ppuVar19 == *pbVar20;
              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);
              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
            } while (bVar22);
            bVar24 = false;
            bVar22 = (!bVar23 && !bVar22) == bVar23;
            if (!bVar22) {
              ppuVar10 = (undefined **)0x9;
              pbVar20 = (byte *)((int)local_a4 + -0x19a212);
              pbVar9 = local_4c[0];
              do {
                if (ppuVar10 == (undefined **)0x0) break;
                ppuVar10 = (undefined **)((int)ppuVar10 + -1);
                bVar24 = *pbVar20 < *pbVar9;
                bVar22 = *pbVar20 == *pbVar9;
                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
              } while (bVar22);
              local_bf = (!bVar24 && !bVar22) != bVar24;
            }
          }
        }
      }
    }
  }
  if (param_8 != 0) {
    local_cc = (byte *)0x0;
    local_d8 = local_94;
    local_f4 = &local_78;
    local_dc = 0;
    do {
      local_f0 = (undefined **)param_7[2];
      local_b0 = param_7[5];
      uVar15 = param_7[3];
      local_b4 = param_7[4];
      if (uVar15 < param_11) {
        if (param_12 == 0) {
          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;
          *(undefined4 *)(puVar17 + -0xc) = 0xea;
          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;
          FUN_002446e0();
        }
        local_ac = (uint *)(param_12 + uVar15 * 0x18);
        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);
        if (local_a8 < (uint *)0xff00) {
LAB_0008db84:
          puVar18 = (uint *)local_ac[2];
          uVar15 = local_ac[3];
          local_bc = (int)puVar18 + local_b4;
          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);
          if (local_be != '\0') {
            local_34 = param_4;
            local_30 = local_a8;
            local_a0 = &local_34;
            *(uint ***)(puVar17 + -0xc) = local_a0;
            *(int *)(puVar17 + -0x10) = local_c8;
            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;
            FUN_00073b00();
            bVar22 = true;
            goto LAB_0008da46;
          }
        }
        else {
          if (local_a8 == (uint *)0xffff) {
            uVar8 = param_4[0xc];
            if (uVar8 == 0) {
              uVar8 = *param_4;
              *(uint **)(puVar17 + -0x10) = param_4;
              pcVar5 = *(code **)(uVar8 + 0x6c);
              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;
              uVar8 = (*pcVar5)();
              param_4[0xc] = uVar8;
            }
            *(uint *)(puVar17 + -8) = uVar15;
            *(uint **)(puVar17 + -0xc) = param_4;
            *(uint *)(puVar17 + -0x10) = uVar8;
                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */
            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;
            local_a8 = (uint *)FUN_0028b7d0();
            ppuVar10 = extraout_ECX_02;
            goto LAB_0008db84;
          }
          puVar18 = (uint *)local_ac[2];
          uVar15 = local_ac[3];
          local_bc = (int)puVar18 + local_b4;
          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);
          if (local_be == '\0') goto LAB_0008db0d;
          local_a0 = &local_34;
          local_34 = (uint *)0x0;
          *(uint ***)(puVar17 + -0xc) = local_a0;
          *(int *)(puVar17 + -0x10) = local_c8;
          local_30 = (uint *)0x0;
                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */
          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;
          FUN_00073b00();
          bVar22 = false;
LAB_0008da46:
          local_bd = (byte)local_ac[1];
          if ((local_bd & 0xf) == 3) {
            *(uint ***)(puVar17 + -0xc) = local_a0;
            *(int *)(puVar17 + -0x10) = local_d0;
            local_34 = (uint *)0xffffffff;
            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;
            FUN_00073ca0();
          }
          else {
            *(uint ***)(puVar17 + -0xc) = local_a0;
            *(int *)(puVar17 + -0x10) = local_d0;
            local_34 = (uint *)0x0;
            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;
            FUN_00073ca0();
          }
          *(uint ***)(puVar17 + -0xc) = local_a0;
          *(int *)(puVar17 + -0x10) = local_e8;
          local_2c = local_b4;
          local_28 = local_b0;
          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;
          local_34 = puVar18;
          local_30 = (uint *)uVar15;
          FUN_00073e70();
          puVar18 = (uint *)*param_7;
          if (param_7[1] != 0) {
            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;
            *(undefined4 *)(puVar17 + -0xc) = 0xc0;
            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;
            FUN_002446e0();
          }
          local_30 = (uint *)0x0;
          puVar2 = (undefined4 *)local_d4[1];
          local_34 = puVar18;
          if (puVar2 == (undefined4 *)local_d4[2]) {
            *(uint ***)(puVar17 + -8) = local_a0;
            *(undefined4 **)(puVar17 + -0xc) = puVar2;
            *(undefined ***)(puVar17 + -0x10) = local_d4;
            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;
            FUN_00072a40();
          }
          else {
            *puVar2 = puVar18;
            puVar2[1] = 0;
            local_d4[1] = (undefined *)(puVar2 + 2);
          }
          local_54 = (uint *)0x0;
          *(uint ***)(puVar17 + -0xc) = &local_54;
          *(int *)(puVar17 + -0x10) = local_ec;
          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;
          FUN_00074020();
          ppuVar10 = extraout_ECX_00;
          if (!bVar22) goto LAB_0008db0d;
        }
        if (local_bf != '\0') {
          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);
          if (((byte)local_ac[1] & 0xf) != 1) {
            if (*(int *)(*local_c4 + 8) == 0) {
              *(undefined ***)(puVar17 + -4) = ppuVar10;
              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;
              *(undefined4 *)(puVar17 + -0xc) = 0x5c;
              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;
              FUN_002446e0();
            }
            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {
              ppuVar10 = local_f0;
              if (local_f0 < (undefined **)0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();
                return;
              }
            }
            else {
              local_a0 = *(uint ***)(param_2 + 0x15c);
              local_6c = param_4;
              local_68 = (uint)*(ushort *)((int)local_ac + 6);
              *(undefined4 *)(puVar17 + -0xc) = 1;
              *(undefined4 *)(puVar17 + -0x10) = 0;
              *(uint ****)(puVar17 + -0x14) = &local_8c;
              local_8c = local_a0 + 0xd;
              *(uint ***)(puVar17 + -0x18) = &local_6c;
              *(uint ***)(puVar17 + -0x1c) = local_8c;
              *(undefined1 **)(puVar17 + -0x20) = local_d8;
              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;
              FUN_00074280();
              puVar17 = puVar17 + -4;
              ppuVar10 = extraout_ECX_08;
            }
          }
        }
        if (param_5 != local_a8) {
          local_ac = param_4;
          puVar16 = puVar17;
LAB_0008de7e:
          if (*(int *)(*local_c4 + 8) == 0) {
            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;
            *(undefined4 *)(puVar16 + -0xc) = 0x5c;
            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;
            FUN_002446e0();
          }
          puVar17 = puVar16;
          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {
            local_5c = param_4;
            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);
            local_58 = param_5;
            local_54 = local_ac;
            local_50 = local_a8;
            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);
            ppuVar12 = ppuVar10;
            if (ppuVar19 == (undefined **)0x0) {
LAB_0008df10:
              local_74 = &local_5c;
              *(uint ****)(puVar16 + -0x10) = &local_74;
              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;
              FUN_0007da50();
              ppuVar11 = local_98;
            }
            else {
              do {
                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&
                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {
                  ppuVar19 = (undefined **)ppuVar11[2];
                  ppuVar12 = ppuVar11;
                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;
                }
                ppuVar1 = ppuVar11 + 3;
                ppuVar19 = (undefined **)*ppuVar1;
                ppuVar11 = ppuVar12;
              } while ((undefined **)*ppuVar1 != (undefined **)0x0);
LAB_0008defa:
              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||
                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;
            }
            local_78 = ppuVar11 + 6;
            *(undefined4 *)(puVar16 + -0xc) = 1;
            *(undefined4 *)(puVar16 + -0x10) = 0;
            *(undefined ****)(puVar16 + -0x14) = local_f4;
            *(uint ***)(puVar16 + -0x18) = &local_54;
            *(undefined ***)(puVar16 + -0x1c) = local_78;
            *(undefined1 **)(puVar16 + -0x20) = local_d8;
            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;
            FUN_00074340();
            piVar3 = *(int **)(*local_c4 + 0xc);
            if (piVar3 == (int *)0x0) {
              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;
              *(undefined4 *)(puVar16 + -0x10) = 0x73;
              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;
              FUN_002446e0();
            }
            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);
            ppuVar10 = local_a4 + -0x1569f4;
            if (ppuVar19 != ppuVar10) {
              *(int *)(puVar16 + -8) = local_b8;
              *(int *)(puVar16 + -0xc) = local_bc;
              *(uint **)(puVar16 + -0x10) = local_a8;
              *(uint **)(puVar16 + -0x14) = local_ac;
              *(uint **)(puVar16 + -0x18) = param_5;
              *(uint **)(puVar16 + -0x1c) = param_4;
              *(int *)(puVar16 + -0x20) = param_2;
              *(int **)(puVar16 + -0x24) = piVar3;
              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;
              (*(code *)ppuVar19)();
              ppuVar10 = extraout_ECX_07;
            }
            pbVar20 = local_cc;
            puVar17 = puVar16 + -4;
            if (local_cc != (byte *)0x0) {
              local_a8 = &local_2c;
              iVar13 = *(int *)(param_2 + 0x158);
              *(byte **)(puVar16 + -0x14) = local_cc;
              local_a0 = &local_34;
              local_34 = local_a8;
              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;
              sVar7 = strlen(*(char **)(puVar16 + -0x14));
              ppuVar6 = local_a0;
              *(undefined4 *)(puVar16 + -8) = 0;
              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;
              *(byte **)(puVar16 + -0x10) = pbVar20;
              *(uint ***)(puVar16 + -0x14) = local_a0;
              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;
              FUN_00072b90();
              *(uint ***)(puVar16 + -0xc) = ppuVar6;
              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;
              *(int **)(puVar16 + -0x14) = &local_9c;
              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;
              FUN_00094bd0();
              iVar13 = local_9c;
              ppuVar10 = extraout_ECX_04;
              if (local_34 != local_a8) {
                *(uint **)(puVar16 + -0x18) = local_34;
                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;
                FUN_003ae080();
                ppuVar10 = extraout_ECX_05;
              }
              puVar17 = puVar16 + -8;
              iVar4 = *(int *)(param_2 + 0x158);
              if (iVar13 != iVar4 + 0x48) {
                local_34 = param_4;
                local_30 = param_5;
                ppuVar19 = *(undefined ***)(iVar4 + 0x18);
                ppuVar12 = (undefined **)(iVar4 + 0x14);
                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {
LAB_0008e140:
                  *(uint ****)(puVar16 + -0x18) = &local_70;
                  local_70 = local_a0;
                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;
                  FUN_0007da50();
                  ppuVar10 = local_98;
                }
                else {
                  do {
                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&
                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {
                      ppuVar19 = (undefined **)ppuVar10[2];
                      ppuVar12 = ppuVar10;
                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;
                    }
                    ppuVar11 = ppuVar10 + 3;
                    ppuVar19 = (undefined **)*ppuVar11;
                    ppuVar10 = ppuVar12;
                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);
LAB_0008e06a:
                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||
                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))
                  goto LAB_0008e140;
                }
                puVar17 = puVar16 + -8;
                ppuVar19 = ppuVar10 + 6;
                puVar16 = puVar16 + -8;
                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;
                    puVar2 = (undefined4 *)*puVar2) {
                  *(undefined4 *)(puVar16 + -0xc) = 1;
                  *(undefined4 *)(puVar16 + -0x10) = 0;
                  *(undefined ****)(puVar16 + -0x14) = local_84;
                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;
                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;
                  *(undefined1 **)(puVar16 + -0x20) = local_d8;
                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;
                  local_84[0] = ppuVar19;
                  FUN_00074340();
                  puVar17 = puVar16 + -4;
                  ppuVar10 = extraout_ECX_06;
                  puVar16 = puVar16 + -4;
                }
              }
            }
          }
        }
      }
      else {
        if (uVar15 < param_4[0x2c]) {
          local_5c = (uint *)0x0;
LAB_0008e2a7:
          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;
          *(undefined4 *)(puVar17 + -0xc) = 0x11c;
          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;
          FUN_002446e0();
        }
        uVar15 = uVar15 - param_4[0x2c];
        local_a0 = (uint **)param_4[0x30];
        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {
          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;
          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;
          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;
          FUN_002446e0();
        }
        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);
        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;
        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {
          *(uint **)(puVar17 + -0xc) = local_5c;
          *(int *)(puVar17 + -0x10) = param_2;
          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;
          local_5c = (uint *)FUN_0034cd90();
        }
        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {
          local_e4 = (uint *)local_5c[0xc];
          local_e0 = local_5c[0xd];
          local_bc = (int)local_e4 + local_b4;
          local_ac = (uint *)local_5c[2];
          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);
          bVar22 = false;
          bVar24 = (local_ac[0xb] & 1) == 0;
          if (bVar24) {
            local_a8 = (uint *)local_5c[3];
            bVar14 = (byte)local_5c[10] & 0xf;
            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;
            bVar22 = bVar14 < 2;
            bVar24 = bVar14 == 2;
            if (bVar24) {
              bVar22 = false;
              bVar24 = local_bf == '\0';
              if (!bVar24) {
                if (local_bd != 0) {
                  if (*(int *)(*local_c4 + 8) == 0) {
                    *(undefined4 *)(puVar17 + -4) = 0;
                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;
                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;
                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;
                    FUN_002446e0();
                  }
                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||
                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {
                    bVar22 = local_f0 < (undefined **)0x2a;
                    bVar24 = local_f0 == (undefined **)0x2a;
                    if (local_f0 < (undefined **)0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();
                      return;
                    }
                    goto LAB_0008dd50;
                  }
                }
                local_a0 = *(uint ***)(param_2 + 0x15c);
                *(undefined4 *)(puVar17 + -0xc) = 1;
                *(undefined4 *)(puVar17 + -0x10) = 0;
                *(uint ****)(puVar17 + -0x14) = &local_88;
                *(uint ***)(puVar17 + -0x18) = &local_64;
                local_88 = local_a0 + 0xd;
                *(uint ***)(puVar17 + -0x1c) = local_88;
                *(undefined1 **)(puVar17 + -0x20) = local_d8;
                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;
                local_64 = local_ac;
                local_60 = local_a8;
                FUN_00074280();
                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;
                bVar24 = puVar17 == (undefined1 *)0x4;
                puVar17 = puVar17 + -4;
              }
            }
          }
          else {
            local_bd = 0;
            local_a8 = (uint *)0x0;
            local_ac = (uint *)0x0;
          }
        }
        else {
          local_e4 = (uint *)local_5c[0xc];
          local_e0 = local_5c[0xd];
          local_bd = 0;
          local_a8 = (uint *)0x0;
          local_bc = (int)local_e4 + local_b4;
          bVar22 = CARRY4(local_b0,local_e0) ||
                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));
          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);
          bVar24 = local_b8 == 0;
          local_ac = (uint *)0x0;
        }
LAB_0008dd50:
        pbVar20 = (byte *)*local_5c;
        ppuVar10 = (undefined **)&DAT_00000008;
        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);
        pbVar21 = pbVar20;
        do {
          if (ppuVar10 == (undefined **)0x0) break;
          ppuVar10 = (undefined **)((int)ppuVar10 + -1);
          bVar22 = *pbVar9 < *pbVar21;
          bVar24 = *pbVar9 == *pbVar21;
          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        bVar23 = false;
        bVar22 = (!bVar22 && !bVar24) == bVar22;
        if (bVar22) {
          pbVar20 = pbVar20 + 8;
        }
        else {
          ppuVar10 = (undefined **)0x7;
          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);
          pbVar21 = pbVar20;
          do {
            if (ppuVar10 == (undefined **)0x0) break;
            ppuVar10 = (undefined **)((int)ppuVar10 + -1);
            bVar23 = *pbVar9 < *pbVar21;
            bVar22 = *pbVar9 == *pbVar21;
            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
          } while (bVar22);
          pbVar20 = pbVar20 + 7;
          if ((!bVar23 && !bVar22) != bVar23) {
            pbVar20 = local_cc;
          }
        }
        local_cc = pbVar20;
        if (local_be != '\0') {
          if (local_bd == 0) {
            local_34 = (uint *)0x0;
            local_30 = (uint *)0x0;
          }
          else {
            local_34 = local_ac;
            local_30 = local_a8;
          }
          local_a0 = &local_34;
          *(uint ***)(puVar17 + -0xc) = local_a0;
          *(int *)(puVar17 + -0x10) = local_c8;
          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;
          FUN_00073b00();
          puVar2 = *(undefined4 **)(local_d0 + 4);
          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {
            *(uint ***)(puVar17 + -8) = &local_5c;
            *(undefined4 **)(puVar17 + -0xc) = puVar2;
            *(int *)(puVar17 + -0x10) = local_d0;
            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;
            FUN_000726c0();
          }
          else {
            *puVar2 = local_5c;
            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;
          }
          *(uint ***)(puVar17 + -0xc) = local_a0;
          *(int *)(puVar17 + -0x10) = local_e8;
          local_34 = local_e4;
          local_30 = (uint *)local_e0;
          local_2c = local_b4;
          local_28 = local_b0;
          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;
          FUN_00073e70();
          puVar18 = (uint *)*param_7;
          if (param_7[1] != 0) {
            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;
            *(undefined4 *)(puVar17 + -0xc) = 0xc0;
            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;
            FUN_002446e0();
          }
          local_30 = (uint *)0x0;
          puVar2 = (undefined4 *)local_d4[1];
          local_34 = puVar18;
          if (puVar2 == (undefined4 *)local_d4[2]) {
            *(uint ***)(puVar17 + -8) = local_a0;
            *(undefined4 **)(puVar17 + -0xc) = puVar2;
            *(undefined ***)(puVar17 + -0x10) = local_d4;
            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;
            FUN_00072a40();
          }
          else {
            *puVar2 = puVar18;
            puVar2[1] = 0;
            local_d4[1] = (undefined *)(puVar2 + 2);
          }
          local_54 = (uint *)0x0;
          *(uint ***)(puVar17 + -0xc) = &local_54;
          *(int *)(puVar17 + -0x10) = local_ec;
          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;
          FUN_00074020();
          ppuVar10 = extraout_ECX_03;
        }
        puVar16 = puVar17;
        if (local_bd != 0) goto LAB_0008de7e;
      }
LAB_0008db0d:
      local_dc = local_dc + 1;
      param_7 = param_7 + 6;
    } while (param_8 != local_dc);
  }
  if (local_4c[0] != local_f8) {
    *(byte **)(puVar17 + -0x10) = local_4c[0];
    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;
    FUN_003ae080();
  }
  return;
}


CALL 0x00074f02
ADD EAX,0x55c73b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xec
CMP dword ptr [EBP + 0x1c],0x9
MOV dword ptr [EBP + 0xffffff60],EAX
JZ 0x0008dc0d
LEA EAX,[EAX + 0x7c8]
MOV dword ptr [EBP + 0xffffff40],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008e81f
MOV EBX,dword ptr [EAX + 0x5934]
LEA EDX,[EBP + -0x48]
TEST EBX,EBX
JZ 0x0008dc18
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 + 0xffffff0c],EAX
ADD ESP,0xc
MOV EAX,dword ptr [EBP + 0xffffff40]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x0008e83b
MOV EDX,dword ptr [EDX + 0x5934]
TEST EDX,EDX
JNZ 0x0008e620
MOV byte ptr [EBP + 0xffffff46],0x0
MOV dword ptr [EBP + 0xffffff18],0x0
MOV dword ptr [EBP + 0xffffff30],0x0
MOV dword ptr [EBP + 0xffffff1c],0x0
MOV dword ptr [EBP + 0xffffff34],0x0
MOV dword ptr [EBP + 0xffffff3c],0x0
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008e857
CMP dword ptr [EAX + 0x5934],0x2
MOV byte ptr [EBP + 0xffffff45],0x0
JZ 0x0008e560
MOV EAX,dword ptr [EBP + 0x24]
TEST EAX,EAX
JZ 0x0008dbf0
MOV dword ptr [EBP + 0xffffff38],0x0
LEA EAX,[EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff2c],EAX
LEA EAX,[EBP + -0x74]
MOV dword ptr [EBP + 0xffffff28],0x0
MOV dword ptr [EBP + 0xffffff10],EAX
JMP 0x0008db27
CMP EDI,0xffff
JZ 0x0008dc48
MOV ESI,dword ptr [EAX + 0x8]
MOV EDI,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV EDX,dword ptr [EBP + 0xffffff54]
ADD EAX,ESI
ADC EDX,EDI
CMP byte ptr [EBP + 0xffffff46],0x0
MOV dword ptr [EBP + 0xffffff48],EAX
MOV dword ptr [EBP + 0xffffff4c],EDX
JZ 0x0008db0d
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x30],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
ADD ESP,0x10
XOR EBX,EBX
MOV EAX,dword ptr [EBP + 0xffffff58]
MOVZX EAX,byte ptr [EAX + 0x4]
MOV byte ptr [EBP + 0xffffff47],AL
AND EAX,0xf
CMP AL,0x3
JZ 0x0008e330
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + -0x30],0x0
CALL 0x00073ca0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV EDX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EBP + -0x30],ESI
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff1c]
MOV dword ptr [EBP + -0x2c],EDI
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [EBP + -0x24],EDX
CALL 0x00073e70
MOV EAX,dword ptr [EBP + 0x20]
ADD ESP,0x10
MOV ESI,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EAX]
TEST ESI,ESI
JNZ 0x0008e782
MOV EDI,dword ptr [EBP + 0xffffff30]
MOV dword ptr [EBP + -0x30],EDX
MOV dword ptr [EBP + -0x2c],0x0
MOV EAX,dword ptr [EDI + 0x4]
CMP EAX,dword ptr [EDI + 0x8]
JZ 0x0008e310
MOV dword ptr [EAX],EDX
ADD EAX,0x8
MOV dword ptr [EAX + -0x4],0x0
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 + 0xffffff18]
CALL 0x00074020
ADD ESP,0x10
TEST BL,BL
JNZ 0x0008e170
ADD dword ptr [EBP + 0xffffff28],0x1
MOV EAX,dword ptr [EBP + 0xffffff28]
ADD dword ptr [EBP + 0x20],0x18
CMP dword ptr [EBP + 0x24],EAX
JZ 0x0008dbf0
MOV EAX,dword ptr [EBP + 0x20]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff14],EAX
MOV EAX,dword ptr [EBP + 0x20]
MOV EDX,dword ptr [EAX + 0x14]
MOV EBX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0xffffff54],EDX
MOV dword ptr [EBP + 0xffffff50],EAX
CMP dword ptr [EBP + 0x30],EBX
JBE 0x0008dc80
MOV EDI,dword ptr [EBP + 0x34]
TEST EDI,EDI
JZ 0x0008e743
MOV EDI,dword ptr [EBP + 0x34]
LEA EAX,[EBX + EBX*0x2]
LEA EAX,[EDI + EAX*0x8]
MOVZX EDI,word ptr [EAX + 0x6]
MOV dword ptr [EBP + 0xffffff58],EAX
MOV dword ptr [EBP + 0xffffff5c],EDI
CMP EDI,0xfeff
JA 0x0008d9e0
MOV EAX,dword ptr [EBP + 0xffffff58]
MOV EDX,dword ptr [EBP + 0xffffff54]
MOV ESI,dword ptr [EAX + 0x8]
MOV EDI,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EBP + 0xffffff50]
ADD EAX,ESI
ADC EDX,EDI
CMP byte ptr [EBP + 0xffffff46],0x0
MOV dword ptr [EBP + 0xffffff48],EAX
MOV dword ptr [EBP + 0xffffff4c],EDX
JZ 0x0008e170
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 + 0xffffff3c]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
ADD ESP,0x10
MOV EBX,0x1
JMP 0x0008da46
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + 0xffffff0c]
JZ 0x0008dc0d
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 + 0xffffff0c],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 0x0008d92e
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JZ 0x0008e350
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 0x0008db84
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0xb0]
CMP EBX,EAX
JC 0x0008e2a0
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 0x0008e7a3
MOV EAX,dword ptr [EDX + EBX*0x4]
MOV dword ptr [EBP + -0x58],EAX
TEST EAX,EAX
JZ 0x0008e2a7
TEST byte ptr [EAX + 0x2a],0x10
JNZ 0x0008e280
TEST byte ptr [EAX + 0x2a],0x7
JNZ 0x0008e230
MOV ESI,dword ptr [EAX + 0x30]
MOV ECX,dword ptr [EBP + 0xffffff50]
MOV EDI,dword ptr [EAX + 0x34]
MOV EBX,dword ptr [EBP + 0xffffff54]
ADD ECX,ESI
MOV EDX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff20],ESI
ADC EBX,EDI
MOV dword ptr [EBP + 0xffffff24],EDI
MOV dword ptr [EBP + 0xffffff58],EDX
MOV dword ptr [EBP + 0xffffff48],ECX
MOV dword ptr [EBP + 0xffffff4c],EBX
TEST byte ptr [EDX + 0x2c],0x1
JNZ 0x0008e2d0
MOVZX ECX,byte ptr [EAX + 0x2b]
MOVZX EDX,byte ptr [EAX + 0x28]
MOV EDI,dword ptr [EAX + 0xc]
SHR CL,0x5
AND EDX,0xf
AND ECX,0x1
MOV dword ptr [EBP + 0xffffff5c],EDI
MOV byte ptr [EBP + 0xffffff47],CL
CMP DL,0x2
JNZ 0x0008dd50
CMP byte ptr [EBP + 0xffffff45],0x0
JNZ 0x0008e450
LEA ESI,[ESI]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EBP + 0xffffff60]
MOV ECX,0x8
LEA ESI,[ESI + 0xffe635da]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x0008e108
ADD EAX,0x8
MOV dword ptr [EBP + 0xffffff38],EAX
CMP byte ptr [EBP + 0xffffff46],0x0
JZ 0x0008de71
CMP byte ptr [EBP + 0xffffff47],0x0
JNZ 0x0008e2f0
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 + 0xffffff3c]
MOV dword ptr [EBP + 0xffffff64],EAX
CALL 0x00073b00
MOV ESI,dword ptr [EBP + 0xffffff34]
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x4]
CMP EAX,dword ptr [ESI + 0x8]
JZ 0x0008e410
MOV EDX,dword ptr [EBP + -0x58]
ADD EAX,0x4
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBP + 0xffffff20]
MOV EDX,dword ptr [EBP + 0xffffff24]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff1c]
MOV dword ptr [EBP + -0x30],EAX
MOV dword ptr [EBP + -0x2c],EDX
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV EDX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [EBP + -0x24],EDX
CALL 0x00073e70
MOV EAX,dword ptr [EBP + 0x20]
ADD ESP,0x10
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
TEST EAX,EAX
JNZ 0x0008e7e2
MOV EBX,dword ptr [EBP + 0xffffff30]
MOV dword ptr [EBP + -0x30],EDX
MOV dword ptr [EBP + -0x2c],0x0
MOV EAX,dword ptr [EBX + 0x4]
CMP EAX,dword ptr [EBX + 0x8]
JZ 0x0008e430
MOV dword ptr [EAX],EDX
ADD EAX,0x8
MOV dword ptr [EAX + -0x4],0x0
MOV dword ptr [EBX + 0x4],EAX
SUB ESP,0x8
LEA EAX,[EBP + -0x50]
MOV dword ptr [EBP + -0x50],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff18]
CALL 0x00074020
ADD ESP,0x10
CMP byte ptr [EBP + 0xffffff47],0x0
JZ 0x0008db0d
MOV EAX,dword ptr [EBP + 0xffffff40]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008e764
CMP byte ptr [EAX + 0x18b1],0x0
JZ 0x0008db0d
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 + 0xffffff58]
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 0x0008deeb
JMP 0x0008df10
JNZ 0x0008dee2
MOV ESI,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x18],ESI
JA 0x0008def3
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008defa
MOV EDI,dword ptr [EAX + 0x10]
CMP dword ptr [EBP + 0x14],EDI
JBE 0x0008ded8
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x0008deeb
CMP EBX,ECX
JZ 0x0008df10
MOV EAX,dword ptr [ECX + 0x10]
CMP dword ptr [EBP + 0x14],EAX
JC 0x0008df10
JNZ 0x0008df34
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x18],EAX
JNC 0x0008df34
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 + 0xffffff10]
PUSH EAX
PUSH ECX
PUSH dword ptr [EBP + 0xffffff2c]
MOV dword ptr [EBP + -0x74],ECX
CALL 0x00074340
MOV EAX,dword ptr [EBP + 0xffffff40]
ADD ESP,0x1c
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0008e7c4
MOV EDX,dword ptr [EAX]
MOV ECX,dword ptr [EBP + 0xffffff60]
MOV EDX,dword ptr [EDX + 0x104]
LEA ECX,[ECX + 0xffaa5830]
CMP EDX,ECX
JNZ 0x0008e0d8
MOV EDI,dword ptr [EBP + 0xffffff38]
TEST EDI,EDI
JZ 0x0008db0d
MOV ECX,dword ptr [EBP + 0xc]
SUB ESP,0xc
LEA EBX,[EBP + -0x28]
MOV dword ptr [EBP + 0xffffff5c],EBX
MOV ESI,dword ptr [ECX + 0x158]
PUSH EDI
LEA ECX,[EBP + -0x30]
MOV dword ptr [EBP + -0x30],EBX
MOV EBX,dword ptr [EBP + 0xffffff60]
MOV dword ptr [EBP + 0xffffff64],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 0x0008e013
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 0x0008db0d
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 0x0008e05b
JMP 0x0008e140
JNZ 0x0008e052
MOV EDI,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x18],EDI
JA 0x0008e063
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008e06a
MOV EDI,dword ptr [EAX + 0x10]
CMP dword ptr [EBP + 0x14],EDI
JBE 0x0008e048
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x0008e05b
CMP ECX,EBX
JZ 0x0008e140
MOV EAX,dword ptr [ECX + 0x10]
CMP dword ptr [EBP + 0x14],EAX
JC 0x0008e140
JNZ 0x0008e090
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x18],EAX
JC 0x0008e140
LEA ESI,[ESI]
MOV EBX,dword ptr [ESI + 0x30]
LEA EDI,[EBP + -0x80]
LEA ESI,[ECX + 0x18]
TEST EBX,EBX
JZ 0x0008db0d
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 + 0xffffff2c]
CALL 0x00074340
MOV EBX,dword ptr [EBX]
ADD ESP,0x1c
TEST EBX,EBX
JNZ 0x0008e0a8
JMP 0x0008db0d
PUSH dword ptr [EBP + 0xffffff4c]
PUSH dword ptr [EBP + 0xffffff48]
PUSH dword ptr [EBP + 0xffffff5c]
PUSH dword ptr [EBP + 0xffffff58]
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL EDX
ADD ESP,0x20
JMP 0x0008df89
MOV EDI,dword ptr [EBP + 0xffffff60]
MOV ECX,0x7
LEA ESI,[EDI + 0xffe635e3]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
ADD EAX,0x7
TEST DL,DL
CMOVNZ EAX,dword ptr [EBP + 0xffffff38]
MOV dword ptr [EBP + 0xffffff38],EAX
JMP 0x0008dd7e
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 0x0008e090
CMP byte ptr [EBP + 0xffffff45],0x0
JZ 0x0008e210
MOV EAX,dword ptr [EBP + 0xffffff58]
MOVZX EAX,byte ptr [EAX + 0x4]
MOV byte ptr [EBP + 0xffffff64],AL
AND EAX,0xf
CMP AL,0x1
JZ 0x0008e210
MOV EAX,dword ptr [EBP + 0xffffff40]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008e803
CMP byte ptr [EAX + 0x1a25],0x0
JZ 0x0008e370
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0x8
LEA EDX,[EBP + 0xffffff78]
MOV ECX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX + 0x15c]
MOV dword ptr [EBP + -0x68],ECX
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EAX,dword ptr [EBP + 0xffffff58]
MOVZX EAX,word ptr [EAX + 0x6]
PUSH 0x1
PUSH 0x0
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,dword ptr [EBP + 0xffffff64]
PUSH EDX
LEA EDX,[EBP + -0x68]
ADD EAX,0x34
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff2c]
MOV dword ptr [EBP + 0xffffff78],EAX
CALL 0x00074280
ADD ESP,0x1c
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xffffff5c]
CMP dword ptr [EBP + 0x18],EAX
JZ 0x0008db0d
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + 0xffffff58],EAX
JMP 0x0008de7e
MOV ESI,dword ptr [EAX + 0x30]
MOV EDI,dword ptr [EAX + 0x34]
MOV byte ptr [EBP + 0xffffff47],0x0
MOV ECX,dword ptr [EBP + 0xffffff50]
MOV EBX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EBP + 0xffffff5c],0x0
MOV dword ptr [EBP + 0xffffff20],ESI
ADD ECX,ESI
MOV dword ptr [EBP + 0xffffff24],EDI
ADC EBX,EDI
MOV dword ptr [EBP + 0xffffff48],ECX
MOV dword ptr [EBP + 0xffffff4c],EBX
MOV dword ptr [EBP + 0xffffff58],0x0
JMP 0x0008dd50
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 0x0008dccd
MOV dword ptr [EBP + -0x58],0x0
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe6871c]
PUSH EAX
LEA EAX,[EBX + 0xffe635ca]
PUSH 0x11c
PUSH EAX
CALL 0x002446e0
MOV byte ptr [EBP + 0xffffff47],0x0
MOV dword ptr [EBP + 0xffffff5c],0x0
MOV dword ptr [EBP + 0xffffff58],0x0
JMP 0x0008dd50
MOV EAX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff5c]
MOV dword ptr [EBP + -0x2c],EAX
JMP 0x0008dda6
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff64]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff30]
CALL 0x00072a40
ADD ESP,0x10
JMP 0x0008dae9
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + -0x30],0xffffffff
CALL 0x00073ca0
JMP 0x0008da7c
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 ECX,dword ptr [EBP + 0x14]
ADD ESP,0x10
MOV dword ptr [ECX + 0x30],EAX
JMP 0x0008dc56
MOV ECX,dword ptr [EBP + 0xffffff14]
CMP ECX,0x2a
JA 0x0008e210
MOV ESI,dword ptr [EBP + 0xffffff60]
MOV EAX,dword ptr [ESI + ECX*0x4 + 0xffe682ec]
ADD EAX,ESI
JMP EAX
SUB ESP,0x4
LEA EDX,[EBP + -0x58]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff34]
CALL 0x000726c0
ADD ESP,0x10
JMP 0x0008dddf
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff64]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff30]
CALL 0x00072a40
ADD ESP,0x10
JMP 0x0008de55
TEST CL,CL
JZ 0x0008e500
MOV EBX,dword ptr [EBP + 0xffffff40]
MOV EDX,dword ptr [EBX]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x0008e873
CMP byte ptr [EDX + 0x1a25],0x0
JZ 0x0008e47e
TEST byte ptr [EAX + 0x29],0x3
JNZ 0x0008e500
MOV ESI,dword ptr [EBP + 0xffffff14]
CMP ESI,0x2a
JA 0x0008dd50
MOV EBX,dword ptr [EBP + 0xffffff60]
MOV EDX,dword ptr [EBX + ESI*0x4 + 0xffe68398]
ADD EDX,EBX
JMP EDX
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 + 0xffffff58]
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 + 0xffffff2c]
MOV dword ptr [EBP + 0xffffff7c],EAX
CALL 0x00074280
ADD ESP,0x1c
MOV EAX,dword ptr [EBP + -0x58]
JMP 0x0008dd50
SUB ESP,0xc
PUSH dword ptr [EBP + 0x8]
CALL 0x000752e0
ADD ESP,0x10
MOV byte ptr [EBP + 0xffffff45],AL
TEST AL,AL
JZ 0x0008d9a7
MOV EDX,dword ptr [EBP + -0x48]
MOV EBX,dword ptr [EBP + 0xffffff60]
MOV ECX,0xc
MOV byte ptr [EBP + 0xffffff45],0x0
LEA ESI,[EBX + 0xffe65db0]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008d9a7
MOV ECX,0x11
LEA ESI,[EBX + 0xffe65dbd]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008d9a7
MOV ECX,0xc
LEA ESI,[EBX + 0xffe65dcf]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008d9a7
MOV ECX,0x11
LEA ESI,[EBX + 0xffe65ddc]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0008d9a7
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 + 0xffffff45]
JMP 0x0008d9a7
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 0x0008e64c
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 0x0008e69b
MOV ECX,0xf
LEA ESI,[EBX + 0xffe635ba]
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0008e718
CMP EDX,dword ptr [EBP + 0xffffff5c]
JNZ 0x0008e89c
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 EBX,[EAX + 0xc]
LEA ESI,[EAX + 0x18]
MOV dword ptr [EBP + 0xffffff3c],EAX
ADD ESP,0x10
LEA ECX,[EAX + 0x24]
ADD EAX,0x30
MOV dword ptr [EBP + 0xffffff34],EBX
MOV dword ptr [EBP + 0xffffff18],EAX
MOV EAX,dword ptr [EBP + 0xffffff40]
MOV dword ptr [EBP + 0xffffff1c],ESI
MOV dword ptr [EBP + 0xffffff30],ECX
MOV EAX,dword ptr [EAX]
MOV byte ptr [EBP + 0xffffff46],0x1
JMP 0x0008d988
CMP EDX,dword ptr [EBP + 0xffffff5c]
JZ 0x0008e88f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EDX
CALL 0x003ae080
MOV EAX,dword ptr [EBP + 0xffffff40]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
JMP 0x0008d94f
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe6871c]
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 + 0xffe69240]
PUSH EAX
LEA EAX,[EBX + 0xffe634b4]
PUSH 0xc0
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe688d0]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8ad
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe68920]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x73
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe69240]
PUSH EAX
LEA EAX,[EBX + 0xffe634b4]
PUSH 0xc0
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH ECX
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 ECX
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 EDX
LEA EAX,[EBX + 0xffe69338]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
MOV EAX,dword ptr [EBP + 0xffffff40]
MOV EAX,dword ptr [EAX]
JMP 0x0008d94f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff60]
PUSH EDX
CALL 0x003ae080
ADD ESP,0x10
JMP 0x0008e6a7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0008d8c0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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  undefined **ppuVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  code *pcVar5;\n  uint **ppuVar6;\n  size_t sVar7;\n  uint uVar8;\n  byte *pbVar9;\n  undefined **extraout_ECX;\n  undefined **extraout_ECX_00;\n  undefined **extraout_ECX_01;\n  undefined **extraout_ECX_02;\n  undefined **ppuVar10;\n  undefined **extraout_ECX_03;\n  undefined **ppuVar11;\n  undefined **extraout_ECX_04;\n  undefined **extraout_ECX_05;\n  undefined **ppuVar12;\n  undefined **extraout_ECX_06;\n  undefined **extraout_ECX_07;\n  undefined **extraout_ECX_08;\n  undefined **extraout_ECX_09;\n  int iVar13;\n  undefined **extraout_ECX_10;\n  byte bVar14;\n  uint uVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint *puVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_fc [4];\n  byte *local_f8;\n  undefined ***local_f4;\n  undefined **local_f0;\n  int local_ec;\n  int local_e8;\n  uint *local_e4;\n  uint local_e0;\n  int local_dc;\n  undefined1 *local_d8;\n  undefined **local_d4;\n  int local_d0;\n  byte *local_cc;\n  int local_c8;\n  int *local_c4;\n  char local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint *local_ac;\n  uint *local_a8;\n  undefined **local_a4;\n  uint **local_a0;\n  int local_9c;\n  undefined **local_98;\n  undefined1 local_94 [8];\n  uint **local_8c;\n  uint **local_88;\n  undefined **local_84 [3];\n  undefined **local_78;\n  uint **local_74;\n  uint **local_70;\n  uint *local_6c;\n  uint local_68;\n  uint *local_64;\n  uint *local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_c4 = &DAT_005ea7c8;\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }\n  pbVar20 = local_4c[0];\n  iVar13 = *local_c4;\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }\n  local_bf = '\0';\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }\n  if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0008d8c0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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  undefined **ppuVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  code *pcVar5;\n  uint **ppuVar6;\n  size_t sVar7;\n  uint uVar8;\n  byte *pbVar9;\n  undefined **extraout_ECX;\n  undefined **extraout_ECX_00;\n  undefined **extraout_ECX_01;\n  undefined **extraout_ECX_02;\n  undefined **ppuVar10;\n  undefined **extraout_ECX_03;\n  undefined **ppuVar11;\n  undefined **extraout_ECX_04;\n  undefined **extraout_ECX_05;\n  undefined **ppuVar12;\n  undefined **extraout_ECX_06;\n  undefined **extraout_ECX_07;\n  undefined **extraout_ECX_08;\n  undefined **extraout_ECX_09;\n  int iVar13;\n  undefined **extraout_ECX_10;\n  byte bVar14;\n  uint uVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint *puVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_fc [4];\n  byte *local_f8;\n  undefined ***local_f4;\n  undefined **local_f0;\n  int local_ec;\n  int local_e8;\n  uint *local_e4;\n  uint local_e0;\n  int local_dc;\n  undefined1 *local_d8;\n  undefined **local_d4;\n  int local_d0;\n  byte *local_cc;\n  int local_c8;\n  int *local_c4;\n  char local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint *local_ac;\n  uint *local_a8;\n  undefined **local_a4;\n  uint **local_a0;\n  int local_9c;\n  undefined **local_98;\n  undefined1 local_94 [8];\n  uint **local_8c;\n  uint **local_88;\n  undefined **local_84 [3];\n  undefined **local_78;\n  uint **local_74;\n  uint **local_70;\n  uint *local_6c;\n  uint local_68;\n  uint *local_64;\n  uint *local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_c4 = &DAT_005ea7c8;\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }\n  pbVar20 = local_4c[0];\n  iVar13 = *local_c4;\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }\n  local_bf = '\0';\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }\n  if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0008d8c0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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,uint *param_4,uint *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 "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint *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  undefined **ppuVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  code *pcVar5;\n  uint **ppuVar6;\n  size_t sVar7;\n  uint uVar8;\n  byte *pbVar9;\n  undefined **extraout_ECX;\n  undefined **extraout_ECX_00;\n  undefined **extraout_ECX_01;\n  undefined **extraout_ECX_02;\n  undefined **ppuVar10;\n  undefined **extraout_ECX_03;\n  undefined **ppuVar11;\n  undefined **extraout_ECX_04;\n  undefined **extraout_ECX_05;\n  undefined **ppuVar12;\n  undefined **extraout_ECX_06;\n  undefined **extraout_ECX_07;\n  undefined **extraout_ECX_08;\n  undefined **extraout_ECX_09;\n  int iVar13;\n  undefined **extraout_ECX_10;\n  byte bVar14;\n  uint uVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint *puVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_fc [4];\n  byte *local_f8;\n  undefined ***local_f4;\n  undefined **local_f0;\n  int local_ec;\n  int local_e8;\n  uint *local_e4;\n  uint local_e0;\n  int local_dc;\n  undefined1 *local_d8;\n  undefined **local_d4;\n  int local_d0;\n  byte *local_cc;\n  int local_c8;\n  int *local_c4;\n  char local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint *local_ac;\n  uint *local_a8;\n  undefined **local_a4;\n  uint **local_a0;\n  int local_9c;\n  undefined **local_98;\n  undefined1 local_94 [8];\n  uint **local_8c;\n  uint **local_88;\n  undefined **local_84 [3];\n  undefined **local_78;\n  uint **local_74;\n  uint **local_70;\n  uint *local_6c;\n  uint local_68;\n  uint *local_64;\n  uint *local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_c4 = &DAT_005ea7c8;\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }\n  pbVar20 = local_4c[0];\n  iVar13 = *local_c4;\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }\n  local_bf = '\0';\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }\n  if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }\n  return;\n}" { (declaration "undefined **ppuVar1;" type_identifier (pointer_declarator "**ppuVar1" * (pointer_declarator "*ppuVar1" * identifier)) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined **extraout_ECX;" type_identifier (pointer_declarator "**extraout_ECX" * (pointer_declarator "*extraout_ECX" * identifier)) ;) (declaration "undefined **extraout_ECX_00;" type_identifier (pointer_declarator "**extraout_ECX_00" * (pointer_declarator "*extraout_ECX_00" * identifier)) ;) (declaration "undefined **extraout_ECX_01;" type_identifier (pointer_declarator "**extraout_ECX_01" * (pointer_declarator "*extraout_ECX_01" * identifier)) ;) (declaration "undefined **extraout_ECX_02;" type_identifier (pointer_declarator "**extraout_ECX_02" * (pointer_declarator "*extraout_ECX_02" * identifier)) ;) (declaration "undefined **ppuVar10;" type_identifier (pointer_declarator "**ppuVar10" * (pointer_declarator "*ppuVar10" * identifier)) ;) (declaration "undefined **extraout_ECX_03;" type_identifier (pointer_declarator "**extraout_ECX_03" * (pointer_declarator "*extraout_ECX_03" * identifier)) ;) (declaration "undefined **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "undefined **extraout_ECX_04;" type_identifier (pointer_declarator "**extraout_ECX_04" * (pointer_declarator "*extraout_ECX_04" * identifier)) ;) (declaration "undefined **extraout_ECX_05;" type_identifier (pointer_declarator "**extraout_ECX_05" * (pointer_declarator "*extraout_ECX_05" * identifier)) ;) (declaration "undefined **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "undefined **extraout_ECX_06;" type_identifier (pointer_declarator "**extraout_ECX_06" * (pointer_declarator "*extraout_ECX_06" * identifier)) ;) (declaration "undefined **extraout_ECX_07;" type_identifier (pointer_declarator "**extraout_ECX_07" * (pointer_declarator "*extraout_ECX_07" * identifier)) ;) (declaration "undefined **extraout_ECX_08;" type_identifier (pointer_declarator "**extraout_ECX_08" * (pointer_declarator "*extraout_ECX_08" * identifier)) ;) (declaration "undefined **extraout_ECX_09;" type_identifier (pointer_declarator "**extraout_ECX_09" * (pointer_declarator "*extraout_ECX_09" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined **extraout_ECX_10;" type_identifier (pointer_declarator "**extraout_ECX_10" * (pointer_declarator "*extraout_ECX_10" * identifier)) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined **ppuVar19;" type_identifier (pointer_declarator "**ppuVar19" * (pointer_declarator "*ppuVar19" * identifier)) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * 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 "undefined1 auStack_fc [4];" type_identifier (array_declarator "auStack_fc [4]" identifier [ number_literal ]) ;) (declaration "byte *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "undefined ***local_f4;" type_identifier (pointer_declarator "***local_f4" * (pointer_declarator "**local_f4" * (pointer_declarator "*local_f4" * identifier))) ;) (declaration "undefined **local_f0;" type_identifier (pointer_declarator "**local_f0" * (pointer_declarator "*local_f0" * identifier)) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "uint *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "uint local_e0;" type_identifier identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "undefined1 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "undefined **local_d4;" type_identifier (pointer_declarator "**local_d4" * (pointer_declarator "*local_d4" * identifier)) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "byte *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int *local_c4;" primitive_type (pointer_declarator "*local_c4" * identifier) ;) (declaration "char local_bf;" primitive_type identifier ;) (declaration "char local_be;" primitive_type identifier ;) (declaration "byte local_bd;" type_identifier identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "uint local_b4;" type_identifier identifier ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "uint *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "uint *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 "uint **local_a0;" type_identifier (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)) ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "undefined **local_98;" type_identifier (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)) ;) (declaration "undefined1 local_94 [8];" type_identifier (array_declarator "local_94 [8]" identifier [ number_literal ]) ;) (declaration "uint **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "uint **local_88;" type_identifier (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier)) ;) (declaration "undefined **local_84 [3];" type_identifier (pointer_declarator "**local_84 [3]" * (pointer_declarator "*local_84 [3]" * (array_declarator "local_84 [3]" identifier [ number_literal ]))) ;) (declaration "undefined **local_78;" type_identifier (pointer_declarator "**local_78" * (pointer_declarator "*local_78" * identifier)) ;) (declaration "uint **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "uint **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "uint *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "uint *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uint *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "byte *local_4c [2];" type_identifier (pointer_declarator "*local_4c [2]" * (array_declarator "local_4c [2]" identifier [ number_literal ])) ;) (declaration "byte local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "uint *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier 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_c4 = &DAT_005ea7c8;" (assignment_expression "local_c4 = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (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) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { 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 *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x5934" (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) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }" { (expression_statement "local_f8 = local_44;" (assignment_expression "local_f8 = local_44" identifier = identifier) ;) (expression_statement "local_4c[0] = local_f8;" (assignment_expression "local_4c[0] = local_f8" (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 "puVar17 = auStack_fc;" (assignment_expression "puVar17 = auStack_fc" identifier = identifier) ;) (expression_statement "ppuVar10 = extraout_ECX_01;" (assignment_expression "ppuVar10 = extraout_ECX_01" identifier = identifier) ;) }) (else_clause "else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" else (compound_statement "{\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" { (expression_statement "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_4 + 0x40))" ( (pointer_expression "**(code **)(*param_4 + 0x40)" * (pointer_expression "*(code **)(*param_4 + 0x40)" * (cast_expression "(code **)(*param_4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_4 + 0x40)" ( (binary_expression "*param_4 + 0x40" (pointer_expression "*param_4" * identifier) + number_literal) ))))) )) (argument_list "(local_4c,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_f8 = local_44;" (assignment_expression "local_f8 = local_44" identifier = identifier) ;) (expression_statement "puVar17 = &stack0xffffff00;" (assignment_expression "puVar17 = &stack0xffffff00" identifier = (pointer_expression "&stack0xffffff00" & identifier)) ;) (expression_statement "ppuVar10 = extraout_ECX;" (assignment_expression "ppuVar10 = extraout_ECX" identifier = identifier) ;) }))) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (if_statement "if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar13 + 8) == 0)" ( (binary_expression "*(int *)(iVar13 + 8) == 0" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }" { (expression_statement "*(undefined ***)(puVar17 + -4) = ppuVar10;" (assignment_expression "*(undefined ***)(puVar17 + -4) = ppuVar10" (pointer_expression "*(undefined ***)(puVar17 + -4)" * (cast_expression "(undefined ***)(puVar17 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" 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 *)(puVar17 + -0x14) = 0x8e857;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e857" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar13 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar13 + 8) + 0x5934" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }" { (labeled_statement "LAB_0008d94f:\n    local_be = '\0';" statement_identifier : (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_d4 = (undefined **)0x0;" (assignment_expression "local_d4 = (undefined **)0x0" identifier = (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" else (compound_statement "{\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" { (expression_statement "local_a8 = &local_2c;" (assignment_expression "local_a8 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)0xffffffff;" (assignment_expression "pbVar9 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }" if (parenthesized_expression "(local_4c[0] != (byte *)0x0)" ( (binary_expression "local_4c[0] != (byte *)0x0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }" { (expression_statement "*(byte **)(puVar17 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar17 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar17 + -0x10)" * (cast_expression "(byte **)(puVar17 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e647;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e647" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar7 = strlen(*(char **)(puVar17 + -0x10));" (assignment_expression "sVar7 = strlen(*(char **)(puVar17 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar17 + -0x10))" identifier (argument_list "(*(char **)(puVar17 + -0x10))" ( (pointer_expression "*(char **)(puVar17 + -0x10)" * (cast_expression "(char **)(puVar17 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "pbVar9 = pbVar20 + sVar7;" (assignment_expression "pbVar9 = pbVar20 + sVar7" identifier = (binary_expression "pbVar20 + sVar7" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" * (cast_expression "(undefined4 *)(puVar17 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar17 + -8) = pbVar9;" (assignment_expression "*(byte **)(puVar17 + -8) = pbVar9" (pointer_expression "*(byte **)(puVar17 + -8)" * (cast_expression "(byte **)(puVar17 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar17 + -0xc)" * (cast_expression "(byte **)(puVar17 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar17 + -0x10) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0x10) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0x10)" * (cast_expression "(uint ***)(puVar17 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e65f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e65f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = 5;" (assignment_expression "iVar13 = 5" identifier = number_literal) ;) (expression_statement "bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;" (assignment_expression "bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10" identifier = (binary_expression "(undefined1 *)0xffffffef < puVar17 + -0x10" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar17 + -0x10" identifier + number_literal))) ;) (expression_statement "bVar24 = puVar17 == (undefined1 *)0x0;" (assignment_expression "bVar24 = puVar17 == (undefined1 *)0x0" identifier = (binary_expression "puVar17 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "ppuVar10 = local_a4 + -0x67293;" (assignment_expression "ppuVar10 = local_a4 + -0x67293" identifier = (binary_expression "local_a4 + -0x67293" identifier + number_literal)) ;) (expression_statement "puVar18 = local_34;" (assignment_expression "puVar18 = local_34" identifier = identifier) ;) (do_statement "do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);" do (compound_statement "{\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;" (assignment_expression "bVar22 = *(byte *)ppuVar10 < (byte)*puVar18" identifier = (binary_expression "*(byte *)ppuVar10 < (byte)*puVar18" (pointer_expression "*(byte *)ppuVar10" * (cast_expression "(byte *)ppuVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;" (assignment_expression "bVar24 = *(byte *)ppuVar10 == (byte)*puVar18" identifier = (binary_expression "*(byte *)ppuVar10 == (byte)*puVar18" (pointer_expression "*(byte *)ppuVar10" * (cast_expression "(byte *)ppuVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar10 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar10 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar10" ( (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 "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "(int)puVar18 + (uint)bVar25 * -2" (cast_expression "(int)puVar18" ( (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) )))) ;) }) 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      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }" { (expression_statement "ppuVar10 = (undefined **)0xf;" (assignment_expression "ppuVar10 = (undefined **)0xf" identifier = (cast_expression "(undefined **)0xf" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19ca46);" (assignment_expression "pbVar20 = (byte *)((int)local_a4 + -0x19ca46)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca46)" ( (type_descriptor "byte *" 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 "puVar18 = local_34;" (assignment_expression "puVar18 = local_34" identifier = identifier) ;) (do_statement "do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);" do (compound_statement "{\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar23 = *pbVar20 < (byte)*puVar18;" (assignment_expression "bVar23 = *pbVar20 < (byte)*puVar18" identifier = (binary_expression "*pbVar20 < (byte)*puVar18" (pointer_expression "*pbVar20" * identifier) < (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pbVar20 == (byte)*puVar18;" (assignment_expression "bVar22 = *pbVar20 == (byte)*puVar18" identifier = (binary_expression "*pbVar20 == (byte)*puVar18" (pointer_expression "*pbVar20" * identifier) == (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (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)) ;) (expression_statement "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "(int)puVar18 + (uint)bVar25 * -2" (cast_expression "(int)puVar18" ( (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) )))) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\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          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }" { (if_statement "if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" if (parenthesized_expression "(local_34 == local_a8)" ( (binary_expression "local_34 == local_a8" identifier == identifier) )) (compound_statement "{\n          iVar13 = *local_c4;\n        }" { (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) }) (else_clause "else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" else (compound_statement "{\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" { (expression_statement "*(uint **)(puVar17 + -0x10) = local_34;" (assignment_expression "*(uint **)(puVar17 + -0x10) = local_34" (pointer_expression "*(uint **)(puVar17 + -0x10)" * (cast_expression "(uint **)(puVar17 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e733;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e733" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (expression_statement "ppuVar10 = extraout_ECX_10;" (assignment_expression "ppuVar10 = extraout_ECX_10" identifier = identifier) ;) }))) (goto_statement "goto LAB_0008d94f;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_34 != local_a8)" ( (binary_expression "local_34 != local_a8" identifier != identifier) )) (compound_statement "{\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }" { (expression_statement "*(uint **)(puVar17 + -0x10) = local_34;" (assignment_expression "*(uint **)(puVar17 + -0x10) = local_34" (pointer_expression "*(uint **)(puVar17 + -0x10)" * (cast_expression "(uint **)(puVar17 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e8ab" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" 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 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x15c)" * (cast_expression "(uint ***)(param_2 + 0x15c)" ( (type_descriptor "uint ***" 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 "*(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(uint ***)(puVar17 + -0x10) = local_a0 + 0x15" (pointer_expression "*(uint ***)(puVar17 + -0x10)" * (cast_expression "(uint ***)(puVar17 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "local_a0 + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e6d4" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_c8 = FUN_00074520();" (assignment_expression "local_c8 = FUN_00074520()" identifier = (call_expression "FUN_00074520()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d0 = local_c8 + 0xc;" (assignment_expression "local_d0 = local_c8 + 0xc" identifier = (binary_expression "local_c8 + 0xc" identifier + number_literal)) ;) (expression_statement "local_e8 = local_c8 + 0x18;" (assignment_expression "local_e8 = local_c8 + 0x18" identifier = (binary_expression "local_c8 + 0x18" identifier + number_literal)) ;) (expression_statement "ppuVar10 = (undefined **)(local_c8 + 0x24);" (assignment_expression "ppuVar10 = (undefined **)(local_c8 + 0x24)" identifier = (cast_expression "(undefined **)(local_c8 + 0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 0x24)" ( (binary_expression "local_c8 + 0x24" identifier + number_literal) )))) ;) (expression_statement "local_ec = local_c8 + 0x30;" (assignment_expression "local_ec = local_c8 + 0x30" identifier = (binary_expression "local_c8 + 0x30" identifier + number_literal)) ;) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (expression_statement "local_be = '\x01';" (assignment_expression "local_be = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_d4 = ppuVar10;" (assignment_expression "local_d4 = ppuVar10" identifier = identifier) ;) }))) (if_statement "if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar13 + 8) == 0)" ( (binary_expression "*(int *)(iVar13 + 8) == 0" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }" { (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" * (cast_expression "(undefined4 *)(puVar17 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -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 *)(puVar17 + -0x14) = 0x8e873;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e873" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_bf = '\0';" (assignment_expression "local_bf = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar13 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar13 + 8) + 0x5934" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)(puVar17 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = param_1" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e56b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e56b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_bf = FUN_000752e0();" (assignment_expression "local_bf = FUN_000752e0()" identifier = (call_expression "FUN_000752e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = local_bf == '\0';" (assignment_expression "bVar24 = local_bf == '\0'" identifier = (binary_expression "local_bf == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "ppuVar10 = extraout_ECX_09;" (assignment_expression "ppuVar10 = extraout_ECX_09" identifier = identifier) ;) (if_statement "if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "ppuVar10 = (undefined **)0xc;" (assignment_expression "ppuVar10 = (undefined **)0xc" identifier = (cast_expression "(undefined **)0xc" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_bf = '\0';" (assignment_expression "local_bf = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppuVar19 = local_a4 + -0x66894;" (assignment_expression "ppuVar19 = local_a4 + -0x66894" identifier = (binary_expression "local_a4 + -0x66894" identifier + number_literal)) ;) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);" do (compound_statement "{\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n      }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar22 = *(byte *)ppuVar19 < *pbVar20;" (assignment_expression "bVar22 = *(byte *)ppuVar19 < *pbVar20" identifier = (binary_expression "*(byte *)ppuVar19 < *pbVar20" (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *(byte *)ppuVar19 == *pbVar20;" (assignment_expression "bVar24 = *(byte *)ppuVar19 == *pbVar20" identifier = (binary_expression "*(byte *)ppuVar19 == *pbVar20" (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar19" ( (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 "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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }" { (expression_statement "ppuVar10 = (undefined **)0x11;" (assignment_expression "ppuVar10 = (undefined **)0x11" identifier = (cast_expression "(undefined **)0x11" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a243);" (assignment_expression "pbVar20 = (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar23 = *pbVar20 < *pbVar9;" (assignment_expression "bVar23 = *pbVar20 < *pbVar9" identifier = (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" identifier = (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (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)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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)) ;) (if_statement "if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }" { (expression_statement "ppuVar10 = (undefined **)0xc;" (assignment_expression "ppuVar10 = (undefined **)0xc" identifier = (cast_expression "(undefined **)0xc" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a231);" (assignment_expression "pbVar20 = (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar24 = *pbVar20 < *pbVar9;" (assignment_expression "bVar24 = *pbVar20 < *pbVar9" identifier = (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" identifier = (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (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)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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)) ;) (if_statement "if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }" { (expression_statement "ppuVar10 = (undefined **)0x11;" (assignment_expression "ppuVar10 = (undefined **)0x11" identifier = (cast_expression "(undefined **)0x11" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppuVar19 = local_a4 + -0x66889;" (assignment_expression "ppuVar19 = local_a4 + -0x66889" identifier = (binary_expression "local_a4 + -0x66889" identifier + number_literal)) ;) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar23 = *(byte *)ppuVar19 < *pbVar20;" (assignment_expression "bVar23 = *(byte *)ppuVar19 < *pbVar20" identifier = (binary_expression "*(byte *)ppuVar19 < *pbVar20" (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *(byte *)ppuVar19 == *pbVar20;" (assignment_expression "bVar22 = *(byte *)ppuVar19 == *pbVar20" identifier = (binary_expression "*(byte *)ppuVar19 == *pbVar20" (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar19" ( (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 "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 "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)) ;) (if_statement "if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }" { (expression_statement "ppuVar10 = (undefined **)0x9;" (assignment_expression "ppuVar10 = (undefined **)0x9" identifier = (cast_expression "(undefined **)0x9" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a212);" (assignment_expression "pbVar20 = (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);" do (compound_statement "{\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar24 = *pbVar20 < *pbVar9;" (assignment_expression "bVar24 = *pbVar20 < *pbVar9" identifier = (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" identifier = (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (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)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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_bf = (!bVar24 && !bVar22) != bVar24;" (assignment_expression "local_bf = (!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)) ;) })) })) })) })) })) })) (if_statement "if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }" { (expression_statement "local_cc = (byte *)0x0;" (assignment_expression "local_cc = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d8 = local_94;" (assignment_expression "local_d8 = local_94" identifier = identifier) ;) (expression_statement "local_f4 = &local_78;" (assignment_expression "local_f4 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (do_statement "do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);" do (compound_statement "{\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    }" { (expression_statement "local_f0 = (undefined **)param_7[2];" (assignment_expression "local_f0 = (undefined **)param_7[2]" identifier = (cast_expression "(undefined **)param_7[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_7[2]" identifier [ number_literal ]))) ;) (expression_statement "local_b0 = param_7[5];" (assignment_expression "local_b0 = param_7[5]" identifier = (subscript_expression "param_7[5]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = param_7[3];" (assignment_expression "uVar15 = param_7[3]" identifier = (subscript_expression "param_7[3]" identifier [ number_literal ])) ;) (expression_statement "local_b4 = param_7[4];" (assignment_expression "local_b4 = param_7[4]" identifier = (subscript_expression "param_7[4]" identifier [ number_literal ])) ;) (if_statement "if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" if (parenthesized_expression "(uVar15 < param_11)" ( (binary_expression "uVar15 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65e39" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" 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 *)(puVar17 + -0x14) = 0x8e764;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e764" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_ac = (uint *)(param_12 + uVar15 * 0x18);" (assignment_expression "local_ac = (uint *)(param_12 + uVar15 * 0x18)" identifier = (cast_expression "(uint *)(param_12 + uVar15 * 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_12 + uVar15 * 0x18)" ( (binary_expression "param_12 + uVar15 * 0x18" identifier + (binary_expression "uVar15 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);" (assignment_expression "local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6)" identifier = (binary_expression "(uint *)(uint)*(ushort *)((int)local_ac + 6)" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)((int)local_ac + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 6)" ( (binary_expression "(int)local_ac + 6" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" if (parenthesized_expression "(local_a8 < (uint *)0xff00)" ( (binary_expression "local_a8 < (uint *)0xff00" identifier < (cast_expression "(uint *)0xff00" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }" { (labeled_statement "LAB_0008db84:\n          puVar18 = (uint *)local_ac[2];" statement_identifier : (expression_statement "puVar18 = (uint *)local_ac[2];" (assignment_expression "puVar18 = (uint *)local_ac[2]" identifier = (cast_expression "(uint *)local_ac[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_ac[2]" identifier [ number_literal ]))) ;)) (expression_statement "uVar15 = local_ac[3];" (assignment_expression "uVar15 = local_ac[3]" identifier = (subscript_expression "local_ac[3]" identifier [ number_literal ])) ;) (expression_statement "local_bc = (int)puVar18 + local_b4;" (assignment_expression "local_bc = (int)puVar18 + local_b4" identifier = (binary_expression "(int)puVar18 + local_b4" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);" (assignment_expression "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" identifier = (binary_expression "local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" (binary_expression "local_b0 + uVar15" identifier + identifier) + (cast_expression "(uint)CARRY4(local_b4,(uint)puVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)puVar18)" identifier (argument_list "(local_b4,(uint)puVar18)" ( identifier , (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (if_statement "if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }" if (parenthesized_expression "(local_be != '\0')" ( (binary_expression "local_be != '\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            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\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 "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dbe0" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (goto_statement "goto LAB_0008da46;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" else (compound_statement "{\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" { (if_statement "if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }" if (parenthesized_expression "(local_a8 == (uint *)0xffff)" ( (binary_expression "local_a8 == (uint *)0xffff" identifier == (cast_expression "(uint *)0xffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }" { (expression_statement "uVar8 = param_4[0xc];" (assignment_expression "uVar8 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }" { (expression_statement "uVar8 = *param_4;" (assignment_expression "uVar8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(uint **)(puVar17 + -0x10) = param_4;" (assignment_expression "*(uint **)(puVar17 + -0x10) = param_4" (pointer_expression "*(uint **)(puVar17 + -0x10)" * (cast_expression "(uint **)(puVar17 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar5 = *(code **)(uVar8 + 0x6c);" (assignment_expression "pcVar5 = *(code **)(uVar8 + 0x6c)" identifier = (pointer_expression "*(code **)(uVar8 + 0x6c)" * (cast_expression "(code **)(uVar8 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x6c)" ( (binary_expression "uVar8 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e35e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e35e" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = (*pcVar5)();" (assignment_expression "uVar8 = (*pcVar5)()" identifier = (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "param_4[0xc] = uVar8;" (assignment_expression "param_4[0xc] = uVar8" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "*(uint *)(puVar17 + -8) = uVar15;" (assignment_expression "*(uint *)(puVar17 + -8) = uVar15" (pointer_expression "*(uint *)(puVar17 + -8)" * (cast_expression "(uint *)(puVar17 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar17 + -0xc) = param_4;" (assignment_expression "*(uint **)(puVar17 + -0xc) = param_4" (pointer_expression "*(uint **)(puVar17 + -0xc)" * (cast_expression "(uint **)(puVar17 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar17 + -0x10) = uVar8;" (assignment_expression "*(uint *)(puVar17 + -0x10) = uVar8" (pointer_expression "*(uint *)(puVar17 + -0x10)" * (cast_expression "(uint *)(puVar17 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dc69;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dc69" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_a8 = (uint *)FUN_0028b7d0();" (assignment_expression "local_a8 = (uint *)FUN_0028b7d0()" identifier = (cast_expression "(uint *)FUN_0028b7d0()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0028b7d0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppuVar10 = extraout_ECX_02;" (assignment_expression "ppuVar10 = extraout_ECX_02" identifier = identifier) ;) (goto_statement "goto LAB_0008db84;" goto statement_identifier ;) })) (expression_statement "puVar18 = (uint *)local_ac[2];" (assignment_expression "puVar18 = (uint *)local_ac[2]" identifier = (cast_expression "(uint *)local_ac[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_ac[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = local_ac[3];" (assignment_expression "uVar15 = local_ac[3]" identifier = (subscript_expression "local_ac[3]" identifier [ number_literal ])) ;) (expression_statement "local_bc = (int)puVar18 + local_b4;" (assignment_expression "local_bc = (int)puVar18 + local_b4" identifier = (binary_expression "(int)puVar18 + local_b4" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);" (assignment_expression "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" identifier = (binary_expression "local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" (binary_expression "local_b0 + uVar15" identifier + identifier) + (cast_expression "(uint)CARRY4(local_b4,(uint)puVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)puVar18)" identifier (argument_list "(local_b4,(uint)puVar18)" ( identifier , (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (if_statement "if (local_be == '\0') goto LAB_0008db0d;" if (parenthesized_expression "(local_be == '\0')" ( (binary_expression "local_be == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008db0d;" 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 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8da41;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8da41" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (labeled_statement "LAB_0008da46:\n          local_bd = (byte)local_ac[1];" statement_identifier : (expression_statement "local_bd = (byte)local_ac[1];" (assignment_expression "local_bd = (byte)local_ac[1]" identifier = (cast_expression "(byte)local_ac[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_ac[1]" identifier [ number_literal ]))) ;)) (if_statement "if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" if (parenthesized_expression "((local_bd & 0xf) == 3)" ( (binary_expression "(local_bd & 0xf) == 3" (parenthesized_expression "(local_bd & 0xf)" ( (binary_expression "local_bd & 0xf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }" { (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (uint *)0xffffffff;" (assignment_expression "local_34 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e34b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e34b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" else (compound_statement "{\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" { (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8da7c;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8da7c" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_e8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_e8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_b4;" (assignment_expression "local_2c = local_b4" identifier = identifier) ;) (expression_statement "local_28 = local_b0;" (assignment_expression "local_28 = local_b0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8daab;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8daab" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" identifier = identifier) ;) (expression_statement "local_30 = (uint *)uVar15;" (assignment_expression "local_30 = (uint *)uVar15" identifier = (cast_expression "(uint *)uVar15" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar18 = (uint *)*param_7;" (assignment_expression "puVar18 = (uint *)*param_7" identifier = (cast_expression "(uint *)*param_7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_7" * identifier))) ;) (if_statement "if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(param_7[1] != 0)" ( (binary_expression "param_7[1] != 0" (subscript_expression "param_7[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" * (cast_expression "(undefined ***)(puVar17 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x672d3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e7a3" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)local_d4[1];" (assignment_expression "puVar2 = (undefined4 *)local_d4[1]" identifier = (cast_expression "(undefined4 *)local_d4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d4[1]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" identifier = identifier) ;) (if_statement "if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" if (parenthesized_expression "(puVar2 == (undefined4 *)local_d4[2])" ( (binary_expression "puVar2 == (undefined4 *)local_d4[2]" identifier == (cast_expression "(undefined4 *)local_d4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d4[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }" { (expression_statement "*(uint ***)(puVar17 + -8) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -8) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -8)" * (cast_expression "(uint ***)(puVar17 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" * (cast_expression "(undefined4 **)(puVar17 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_d4;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_d4" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" * (cast_expression "(undefined ***)(puVar17 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e325;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e325" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" else (compound_statement "{\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" { (expression_statement "*puVar2 = puVar18;" (assignment_expression "*puVar2 = puVar18" (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 "local_d4[1] = (undefined *)(puVar2 + 2);" (assignment_expression "local_d4[1] = (undefined *)(puVar2 + 2)" (subscript_expression "local_d4[1]" identifier [ number_literal ]) = (cast_expression "(undefined *)(puVar2 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 2)" ( (binary_expression "puVar2 + 2" identifier + number_literal) )))) ;) }))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar17 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8db02;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8db02" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = extraout_ECX_00;" (assignment_expression "ppuVar10 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (!bVar22) goto LAB_0008db0d;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0008db0d;" goto statement_identifier ;)) }))) (if_statement "if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }" if (parenthesized_expression "(local_bf != '\0')" ( (binary_expression "local_bf != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }" { (expression_statement "local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);" (assignment_expression "local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1])" identifier = (cast_expression "(uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1])" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_a0._1_3_,(byte)local_ac[1])" identifier (argument_list "(local_a0._1_3_,(byte)local_ac[1])" ( (field_expression "local_a0._1_3_" identifier . field_identifier) , (cast_expression "(byte)local_ac[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_ac[1]" identifier [ number_literal ])) ))))) ;) (if_statement "if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }" if (parenthesized_expression "(((byte)local_ac[1] & 0xf) != 1)" ( (binary_expression "((byte)local_ac[1] & 0xf) != 1" (parenthesized_expression "((byte)local_ac[1] & 0xf)" ( (binary_expression "(byte)local_ac[1] & 0xf" (cast_expression "(byte)local_ac[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_ac[1]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }" { (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" ( (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar17 + -4) = ppuVar10;" (assignment_expression "*(undefined ***)(puVar17 + -4) = ppuVar10" (pointer_expression "*(undefined ***)(puVar17 + -4)" * (cast_expression "(undefined ***)(puVar17 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -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 *)(puVar17 + -0x14) = 0x8e81f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e81f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" if (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_c4 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }" { (expression_statement "ppuVar10 = local_f0;" (assignment_expression "ppuVar10 = local_f0" identifier = identifier) ;) (if_statement "if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }" if (parenthesized_expression "(local_f0 < (undefined **)0x2b)" ( (binary_expression "local_f0 < (undefined **)0x2b" identifier < (cast_expression "(undefined **)0x2b" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }" { comment comment (expression_statement "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" * (cast_expression "(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" ( (binary_expression "local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4" (subscript_expression "local_a4[(int)((int)local_f0 + -0x65f45)]" identifier [ (cast_expression "(int)((int)local_f0 + -0x65f45)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_f0 + -0x65f45)" ( (binary_expression "(int)local_f0 + -0x65f45" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" else (compound_statement "{\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" { (expression_statement "local_a0 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x15c)" * (cast_expression "(uint ***)(param_2 + 0x15c)" ( (type_descriptor "uint ***" 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_6c = param_4;" (assignment_expression "local_6c = param_4" identifier = identifier) ;) (expression_statement "local_68 = (uint)*(ushort *)((int)local_ac + 6);" (assignment_expression "local_68 = (uint)*(ushort *)((int)local_ac + 6)" identifier = (binary_expression "(uint)*(ushort *)((int)local_ac + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_ac + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 6)" ( (binary_expression "(int)local_ac + 6" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint ****)(puVar17 + -0x14) = &local_8c;" (assignment_expression "*(uint ****)(puVar17 + -0x14) = &local_8c" (pointer_expression "*(uint ****)(puVar17 + -0x14)" * (cast_expression "(uint ****)(puVar17 + -0x14)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_8c" & identifier)) ;) (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 "*(uint ***)(puVar17 + -0x18) = &local_6c;" (assignment_expression "*(uint ***)(puVar17 + -0x18) = &local_6c" (pointer_expression "*(uint ***)(puVar17 + -0x18)" * (cast_expression "(uint ***)(puVar17 + -0x18)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(uint ***)(puVar17 + -0x1c) = local_8c;" (assignment_expression "*(uint ***)(puVar17 + -0x1c) = local_8c" (pointer_expression "*(uint ***)(puVar17 + -0x1c)" * (cast_expression "(uint ***)(puVar17 + -0x1c)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" * (cast_expression "(undefined1 **)(puVar17 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x8e203;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x8e203" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" * (cast_expression "(undefined4 *)(puVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" identifier = (binary_expression "puVar17 + -4" identifier + number_literal)) ;) (expression_statement "ppuVar10 = extraout_ECX_08;" (assignment_expression "ppuVar10 = extraout_ECX_08" identifier = identifier) ;) }))) })) })) (if_statement "if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -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_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_ac = param_4;" (assignment_expression "local_ac = param_4" identifier = identifier) ;) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (labeled_statement "LAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" statement_identifier : (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" ( (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar16 + -8)" * (cast_expression "(undefined ***)(puVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar16 + -0x10)" * (cast_expression "(int *)(puVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -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 *)(puVar16 + -0x14) = 0x8e782;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x8e782" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*local_c4 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }" { (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" identifier = identifier) ;) (expression_statement "ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);" (assignment_expression "ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14)" identifier = (cast_expression "(undefined **)(*(int *)(param_2 + 0x158) + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x14)" ( (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_ac;" (assignment_expression "local_54 = local_ac" identifier = identifier) ;) (expression_statement "local_50 = local_a8;" (assignment_expression "local_50 = local_a8" identifier = identifier) ;) (expression_statement "ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" identifier = (pointer_expression "*(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" * (cast_expression "(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (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 "ppuVar12 = ppuVar10;" (assignment_expression "ppuVar12 = ppuVar10" identifier = identifier) ;) (if_statement "if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" if (parenthesized_expression "(ppuVar19 == (undefined **)0x0)" ( (binary_expression "ppuVar19 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }" { (labeled_statement "LAB_0008df10:\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 "*(uint ****)(puVar16 + -0x10) = &local_74;" (assignment_expression "*(uint ****)(puVar16 + -0x10) = &local_74" (pointer_expression "*(uint ****)(puVar16 + -0x10)" * (cast_expression "(uint ****)(puVar16 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x8df2b;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x8df2b" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar11 = local_98;" (assignment_expression "ppuVar11 = local_98" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" else (compound_statement "{\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" { (do_statement "do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);" do (compound_statement "{\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              }" { (while_statement "while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }" while (parenthesized_expression "((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))))" ( (parenthesized_expression "(ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))" ( (comma_expression "ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" (assignment_expression "ppuVar11 = ppuVar19" identifier = identifier) , (binary_expression "param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" (binary_expression "param_4 <= ppuVar11[4]" identifier <= (subscript_expression "ppuVar11[4]" identifier [ number_literal ])) && (parenthesized_expression "((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" ( (parenthesized_expression "(param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))" ( (binary_expression "param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])" (binary_expression "param_4 != (uint *)ppuVar11[4]" identifier != (cast_expression "(uint *)ppuVar11[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar11[4]" identifier [ number_literal ]))) || (parenthesized_expression "(param_5 <= ppuVar11[5])" ( (binary_expression "param_5 <= ppuVar11[5]" identifier <= (subscript_expression "ppuVar11[5]" identifier [ number_literal ])) ))) )) )))) )) )) (compound_statement "{\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }" { (expression_statement "ppuVar19 = (undefined **)ppuVar11[2];" (assignment_expression "ppuVar19 = (undefined **)ppuVar11[2]" identifier = (cast_expression "(undefined **)ppuVar11[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar11[2]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" identifier = identifier) ;) (if_statement "if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;" if (parenthesized_expression "((undefined **)ppuVar11[2] == (undefined **)0x0)" ( (binary_expression "(undefined **)ppuVar11[2] == (undefined **)0x0" (cast_expression "(undefined **)ppuVar11[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar11[2]" identifier [ number_literal ])) == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0008defa;" goto statement_identifier ;)) })) (expression_statement "ppuVar1 = ppuVar11 + 3;" (assignment_expression "ppuVar1 = ppuVar11 + 3" identifier = (binary_expression "ppuVar11 + 3" identifier + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)*ppuVar1;" (assignment_expression "ppuVar19 = (undefined **)*ppuVar1" identifier = (cast_expression "(undefined **)*ppuVar1" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppuVar1" * identifier))) ;) (expression_statement "ppuVar11 = ppuVar12;" (assignment_expression "ppuVar11 = ppuVar12" identifier = identifier) ;) }) while (parenthesized_expression "((undefined **)*ppuVar1 != (undefined **)0x0)" ( (binary_expression "(undefined **)*ppuVar1 != (undefined **)0x0" (cast_expression "(undefined **)*ppuVar1" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppuVar1" * identifier)) != (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (labeled_statement "LAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;" statement_identifier : (if_statement "if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;" if (parenthesized_expression "(((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5]))))" ( (binary_expression "((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))" (parenthesized_expression "((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4]))" ( (binary_expression "(ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])" (parenthesized_expression "(ppuVar10 == ppuVar11)" ( (binary_expression "ppuVar10 == ppuVar11" identifier == identifier) )) || (parenthesized_expression "(param_4 < ppuVar11[4])" ( (binary_expression "param_4 < ppuVar11[4]" identifier < (subscript_expression "ppuVar11[4]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))" ( (parenthesized_expression "(param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5]))" ( (binary_expression "param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])" (binary_expression "param_4 == (uint *)ppuVar11[4]" identifier == (cast_expression "(uint *)ppuVar11[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar11[4]" identifier [ number_literal ]))) && (parenthesized_expression "(param_5 < ppuVar11[5])" ( (binary_expression "param_5 < ppuVar11[5]" identifier < (subscript_expression "ppuVar11[5]" identifier [ number_literal ])) ))) )) ))) )) (goto_statement "goto LAB_0008df10;" goto statement_identifier ;))) }))) (expression_statement "local_78 = ppuVar11 + 6;" (assignment_expression "local_78 = ppuVar11 + 6" identifier = (binary_expression "ppuVar11 + 6" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ****)(puVar16 + -0x14) = local_f4;" (assignment_expression "*(undefined ****)(puVar16 + -0x14) = local_f4" (pointer_expression "*(undefined ****)(puVar16 + -0x14)" * (cast_expression "(undefined ****)(puVar16 + -0x14)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar16 + -0x18) = &local_54;" (assignment_expression "*(uint ***)(puVar16 + -0x18) = &local_54" (pointer_expression "*(uint ***)(puVar16 + -0x18)" * (cast_expression "(uint ***)(puVar16 + -0x18)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(undefined ***)(puVar16 + -0x1c) = local_78;" (assignment_expression "*(undefined ***)(puVar16 + -0x1c) = local_78" (pointer_expression "*(undefined ***)(puVar16 + -0x1c)" * (cast_expression "(undefined ***)(puVar16 + -0x1c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar16 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar16 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar16 + -0x20)" * (cast_expression "(undefined1 **)(puVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x20)" ( (binary_expression "puVar16 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x24) = 0x8df57;" (assignment_expression "*(undefined4 *)(puVar16 + -0x24) = 0x8df57" (pointer_expression "*(undefined4 *)(puVar16 + -0x24)" * (cast_expression "(undefined4 *)(puVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x24)" ( (binary_expression "puVar16 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3 = *(int **)(*local_c4 + 0xc);" (assignment_expression "piVar3 = *(int **)(*local_c4 + 0xc)" identifier = (pointer_expression "*(int **)(*local_c4 + 0xc)" * (cast_expression "(int **)(*local_c4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_c4 + 0xc)" ( (binary_expression "*local_c4 + 0xc" (pointer_expression "*local_c4" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;" (assignment_expression "*(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8" (pointer_expression "*(undefined ***)(puVar16 + -0xc)" * (cast_expression "(undefined ***)(puVar16 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65db8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar16 + -0x14)" * (cast_expression "(int *)(puVar16 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -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 *)(puVar16 + -0x18) = 0x8e7e2;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8e7e2" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar19 = *(undefined ***)(*piVar3 + 0x104);" (assignment_expression "ppuVar19 = *(undefined ***)(*piVar3 + 0x104)" identifier = (pointer_expression "*(undefined ***)(*piVar3 + 0x104)" * (cast_expression "(undefined ***)(*piVar3 + 0x104)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar3 + 0x104)" ( (binary_expression "*piVar3 + 0x104" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (expression_statement "ppuVar10 = local_a4 + -0x1569f4;" (assignment_expression "ppuVar10 = local_a4 + -0x1569f4" identifier = (binary_expression "local_a4 + -0x1569f4" identifier + number_literal)) ;) (if_statement "if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }" if (parenthesized_expression "(ppuVar19 != ppuVar10)" ( (binary_expression "ppuVar19 != ppuVar10" identifier != identifier) )) (compound_statement "{\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }" { (expression_statement "*(int *)(puVar16 + -8) = local_b8;" (assignment_expression "*(int *)(puVar16 + -8) = local_b8" (pointer_expression "*(int *)(puVar16 + -8)" * (cast_expression "(int *)(puVar16 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar16 + -0xc) = local_bc;" (assignment_expression "*(int *)(puVar16 + -0xc) = local_bc" (pointer_expression "*(int *)(puVar16 + -0xc)" * (cast_expression "(int *)(puVar16 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar16 + -0x10) = local_a8;" (assignment_expression "*(uint **)(puVar16 + -0x10) = local_a8" (pointer_expression "*(uint **)(puVar16 + -0x10)" * (cast_expression "(uint **)(puVar16 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar16 + -0x14) = local_ac;" (assignment_expression "*(uint **)(puVar16 + -0x14) = local_ac" (pointer_expression "*(uint **)(puVar16 + -0x14)" * (cast_expression "(uint **)(puVar16 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar16 + -0x18) = param_5;" (assignment_expression "*(uint **)(puVar16 + -0x18) = param_5" (pointer_expression "*(uint **)(puVar16 + -0x18)" * (cast_expression "(uint **)(puVar16 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar16 + -0x1c) = param_4;" (assignment_expression "*(uint **)(puVar16 + -0x1c) = param_4" (pointer_expression "*(uint **)(puVar16 + -0x1c)" * (cast_expression "(uint **)(puVar16 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar16 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar16 + -0x20) = param_2" (pointer_expression "*(int *)(puVar16 + -0x20)" * (cast_expression "(int *)(puVar16 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x20)" ( (binary_expression "puVar16 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar16 + -0x24) = piVar3;" (assignment_expression "*(int **)(puVar16 + -0x24) = piVar3" (pointer_expression "*(int **)(puVar16 + -0x24)" * (cast_expression "(int **)(puVar16 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x24)" ( (binary_expression "puVar16 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;" (assignment_expression "*(undefined4 *)(puVar16 + -0x28) = 0x8e0fc" (pointer_expression "*(undefined4 *)(puVar16 + -0x28)" * (cast_expression "(undefined4 *)(puVar16 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x28)" ( (binary_expression "puVar16 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar19)();" (call_expression "(*(code *)ppuVar19)()" (parenthesized_expression "(*(code *)ppuVar19)" ( (pointer_expression "*(code *)ppuVar19" * (cast_expression "(code *)ppuVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = extraout_ECX_07;" (assignment_expression "ppuVar10 = extraout_ECX_07" identifier = identifier) ;) })) (expression_statement "pbVar20 = local_cc;" (assignment_expression "pbVar20 = local_cc" identifier = identifier) ;) (expression_statement "puVar17 = puVar16 + -4;" (assignment_expression "puVar17 = puVar16 + -4" identifier = (binary_expression "puVar16 + -4" identifier + number_literal)) ;) (if_statement "if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }" if (parenthesized_expression "(local_cc != (byte *)0x0)" ( (binary_expression "local_cc != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }" { (expression_statement "local_a8 = &local_2c;" (assignment_expression "local_a8 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "iVar13 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar13 = *(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 **)(puVar16 + -0x14) = local_cc;" (assignment_expression "*(byte **)(puVar16 + -0x14) = local_cc" (pointer_expression "*(byte **)(puVar16 + -0x14)" * (cast_expression "(byte **)(puVar16 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfc4" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar7 = strlen(*(char **)(puVar16 + -0x14));" (assignment_expression "sVar7 = strlen(*(char **)(puVar16 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar16 + -0x14))" identifier (argument_list "(*(char **)(puVar16 + -0x14))" ( (pointer_expression "*(char **)(puVar16 + -0x14)" * (cast_expression "(char **)(puVar16 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppuVar6 = local_a0;" (assignment_expression "ppuVar6 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -8)" * (cast_expression "(undefined4 *)(puVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;" (assignment_expression "*(byte **)(puVar16 + -0xc) = pbVar20 + sVar7" (pointer_expression "*(byte **)(puVar16 + -0xc)" * (cast_expression "(byte **)(puVar16 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (binary_expression "pbVar20 + sVar7" identifier + identifier)) ;) (expression_statement "*(byte **)(puVar16 + -0x10) = pbVar20;" (assignment_expression "*(byte **)(puVar16 + -0x10) = pbVar20" (pointer_expression "*(byte **)(puVar16 + -0x10)" * (cast_expression "(byte **)(puVar16 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar16 + -0x14) = local_a0;" (assignment_expression "*(uint ***)(puVar16 + -0x14) = local_a0" (pointer_expression "*(uint ***)(puVar16 + -0x14)" * (cast_expression "(uint ***)(puVar16 + -0x14)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfd9" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(uint ***)(puVar16 + -0xc) = ppuVar6;" (assignment_expression "*(uint ***)(puVar16 + -0xc) = ppuVar6" (pointer_expression "*(uint ***)(puVar16 + -0xc)" * (cast_expression "(uint ***)(puVar16 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar16 + -0x10) = iVar13 + 0x44;" (assignment_expression "*(int *)(puVar16 + -0x10) = iVar13 + 0x44" (pointer_expression "*(int *)(puVar16 + -0x10)" * (cast_expression "(int *)(puVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar13 + 0x44" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar16 + -0x14) = &local_9c;" (assignment_expression "*(int **)(puVar16 + -0x14) = &local_9c" (pointer_expression "*(int **)(puVar16 + -0x14)" * (cast_expression "(int **)(puVar16 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfed;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfed" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = local_9c;" (assignment_expression "iVar13 = local_9c" identifier = identifier) ;) (expression_statement "ppuVar10 = extraout_ECX_04;" (assignment_expression "ppuVar10 = extraout_ECX_04" identifier = identifier) ;) (if_statement "if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }" if (parenthesized_expression "(local_34 != local_a8)" ( (binary_expression "local_34 != local_a8" identifier != identifier) )) (compound_statement "{\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }" { (expression_statement "*(uint **)(puVar16 + -0x18) = local_34;" (assignment_expression "*(uint **)(puVar16 + -0x18) = local_34" (pointer_expression "*(uint **)(puVar16 + -0x18)" * (cast_expression "(uint **)(puVar16 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x1c) = 0x8e010;" (assignment_expression "*(undefined4 *)(puVar16 + -0x1c) = 0x8e010" (pointer_expression "*(undefined4 *)(puVar16 + -0x1c)" * (cast_expression "(undefined4 *)(puVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = extraout_ECX_05;" (assignment_expression "ppuVar10 = extraout_ECX_05" identifier = identifier) ;) })) (expression_statement "puVar17 = puVar16 + -8;" (assignment_expression "puVar17 = puVar16 + -8" identifier = (binary_expression "puVar16 + -8" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar4 = *(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) ))))) ;) (if_statement "if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }" if (parenthesized_expression "(iVar13 != iVar4 + 0x48)" ( (binary_expression "iVar13 != iVar4 + 0x48" identifier != (binary_expression "iVar4 + 0x48" identifier + number_literal)) )) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -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 "ppuVar19 = *(undefined ***)(iVar4 + 0x18);" (assignment_expression "ppuVar19 = *(undefined ***)(iVar4 + 0x18)" identifier = (pointer_expression "*(undefined ***)(iVar4 + 0x18)" * (cast_expression "(undefined ***)(iVar4 + 0x18)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "ppuVar12 = (undefined **)(iVar4 + 0x14);" (assignment_expression "ppuVar12 = (undefined **)(iVar4 + 0x14)" identifier = (cast_expression "(undefined **)(iVar4 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) ;) (if_statement "if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" if (parenthesized_expression "(*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0)" ( (binary_expression "*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0" (pointer_expression "*(undefined ***)(iVar4 + 0x18)" * (cast_expression "(undefined ***)(iVar4 + 0x18)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }" { (labeled_statement "LAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;" statement_identifier : (expression_statement "*(uint ****)(puVar16 + -0x18) = &local_70;" (assignment_expression "*(uint ****)(puVar16 + -0x18) = &local_70" (pointer_expression "*(uint ****)(puVar16 + -0x18)" * (cast_expression "(uint ****)(puVar16 + -0x18)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -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 *)(puVar16 + -0x1c) = 0x8e15e;" (assignment_expression "*(undefined4 *)(puVar16 + -0x1c) = 0x8e15e" (pointer_expression "*(undefined4 *)(puVar16 + -0x1c)" * (cast_expression "(undefined4 *)(puVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = local_98;" (assignment_expression "ppuVar10 = local_98" identifier = identifier) ;) }) (else_clause "else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" else (compound_statement "{\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" { (do_statement "do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);" do (compound_statement "{\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  }" { (while_statement "while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }" while (parenthesized_expression "((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))))" ( (parenthesized_expression "(ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))" ( (comma_expression "ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" (assignment_expression "ppuVar10 = ppuVar19" identifier = identifier) , (binary_expression "param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" (binary_expression "param_4 <= ppuVar10[4]" identifier <= (subscript_expression "ppuVar10[4]" identifier [ number_literal ])) && (parenthesized_expression "((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" ( (parenthesized_expression "(param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))" ( (binary_expression "param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])" (binary_expression "param_4 != (uint *)ppuVar10[4]" identifier != (cast_expression "(uint *)ppuVar10[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar10[4]" identifier [ number_literal ]))) || (parenthesized_expression "(param_5 <= ppuVar10[5])" ( (binary_expression "param_5 <= ppuVar10[5]" identifier <= (subscript_expression "ppuVar10[5]" identifier [ number_literal ])) ))) )) )))) )) )) (compound_statement "{\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }" { (expression_statement "ppuVar19 = (undefined **)ppuVar10[2];" (assignment_expression "ppuVar19 = (undefined **)ppuVar10[2]" identifier = (cast_expression "(undefined **)ppuVar10[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar10[2]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar12 = ppuVar10;" (assignment_expression "ppuVar12 = ppuVar10" identifier = identifier) ;) (if_statement "if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;" if (parenthesized_expression "((undefined **)ppuVar10[2] == (undefined **)0x0)" ( (binary_expression "(undefined **)ppuVar10[2] == (undefined **)0x0" (cast_expression "(undefined **)ppuVar10[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar10[2]" identifier [ number_literal ])) == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0008e06a;" goto statement_identifier ;)) })) (expression_statement "ppuVar11 = ppuVar10 + 3;" (assignment_expression "ppuVar11 = ppuVar10 + 3" identifier = (binary_expression "ppuVar10 + 3" identifier + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)*ppuVar11;" (assignment_expression "ppuVar19 = (undefined **)*ppuVar11" identifier = (cast_expression "(undefined **)*ppuVar11" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppuVar11" * identifier))) ;) (expression_statement "ppuVar10 = ppuVar12;" (assignment_expression "ppuVar10 = ppuVar12" identifier = identifier) ;) }) while (parenthesized_expression "((undefined **)*ppuVar11 != (undefined **)0x0)" ( (binary_expression "(undefined **)*ppuVar11 != (undefined **)0x0" (cast_expression "(undefined **)*ppuVar11" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppuVar11" * identifier)) != (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (labeled_statement "LAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;" statement_identifier : (if_statement "if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;" if (parenthesized_expression "(((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))" ( (binary_expression "((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])))" (parenthesized_expression "((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4]))" ( (binary_expression "(ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])" (parenthesized_expression "(ppuVar10 == (undefined **)(iVar4 + 0x14))" ( (binary_expression "ppuVar10 == (undefined **)(iVar4 + 0x14)" identifier == (cast_expression "(undefined **)(iVar4 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )) || (parenthesized_expression "(param_4 < ppuVar10[4])" ( (binary_expression "param_4 < ppuVar10[4]" identifier < (subscript_expression "ppuVar10[4]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])))" ( (parenthesized_expression "(param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))" ( (binary_expression "param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])" (binary_expression "param_4 == (uint *)ppuVar10[4]" identifier == (cast_expression "(uint *)ppuVar10[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar10[4]" identifier [ number_literal ]))) && (parenthesized_expression "(param_5 < ppuVar10[5])" ( (binary_expression "param_5 < ppuVar10[5]" identifier < (subscript_expression "ppuVar10[5]" identifier [ number_literal ])) ))) )) ))) )) (goto_statement "goto LAB_0008e140;" goto statement_identifier ;))) }))) (expression_statement "puVar17 = puVar16 + -8;" (assignment_expression "puVar17 = puVar16 + -8" identifier = (binary_expression "puVar16 + -8" identifier + number_literal)) ;) (expression_statement "ppuVar19 = ppuVar10 + 6;" (assignment_expression "ppuVar19 = ppuVar10 + 6" identifier = (binary_expression "ppuVar10 + 6" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar16 + -8;" (assignment_expression "puVar16 = puVar16 + -8" identifier = (binary_expression "puVar16 + -8" identifier + number_literal)) ;) (for_statement "for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }" for ( (assignment_expression "puVar2 = *(undefined4 **)(iVar13 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x30)" * (cast_expression "(undefined4 **)(iVar13 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x30)" ( (binary_expression "iVar13 + 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 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }" { (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ****)(puVar16 + -0x14) = local_84;" (assignment_expression "*(undefined ****)(puVar16 + -0x14) = local_84" (pointer_expression "*(undefined ****)(puVar16 + -0x14)" * (cast_expression "(undefined ****)(puVar16 + -0x14)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(puVar16 + -0x18) = puVar2 + 1" (pointer_expression "*(undefined4 **)(puVar16 + -0x18)" * (cast_expression "(undefined4 **)(puVar16 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined ***)(puVar16 + -0x1c) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar16 + -0x1c) = ppuVar19" (pointer_expression "*(undefined ***)(puVar16 + -0x1c)" * (cast_expression "(undefined ***)(puVar16 + -0x1c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar16 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar16 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar16 + -0x20)" * (cast_expression "(undefined1 **)(puVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x20)" ( (binary_expression "puVar16 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;" (assignment_expression "*(undefined4 *)(puVar16 + -0x24) = 0x8e0c3" (pointer_expression "*(undefined4 *)(puVar16 + -0x24)" * (cast_expression "(undefined4 *)(puVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x24)" ( (binary_expression "puVar16 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_84[0] = ppuVar19;" (assignment_expression "local_84[0] = ppuVar19" (subscript_expression "local_84[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puVar16 + -4;" (assignment_expression "puVar17 = puVar16 + -4" identifier = (binary_expression "puVar16 + -4" identifier + number_literal)) ;) (expression_statement "ppuVar10 = extraout_ECX_06;" (assignment_expression "ppuVar10 = extraout_ECX_06" identifier = identifier) ;) (expression_statement "puVar16 = puVar16 + -4;" (assignment_expression "puVar16 = puVar16 + -4" identifier = (binary_expression "puVar16 + -4" identifier + number_literal)) ;) })) })) })) })) })) }) (else_clause "else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" else (compound_statement "{\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" { (if_statement "if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(uVar15 < param_4[0x2c])" ( (binary_expression "uVar15 < param_4[0x2c]" identifier < (subscript_expression "param_4[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }" { (expression_statement "local_5c = (uint *)0x0;" (assignment_expression "local_5c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" statement_identifier : (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65e39" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" 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 **)(puVar17 + -0x14) = &UNK_0008e2c8;" (assignment_expression "*(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8" (pointer_expression "*(undefined **)(puVar17 + -0x14)" * (cast_expression "(undefined **)(puVar17 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_0008e2c8" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar15 = uVar15 - param_4[0x2c];" (assignment_expression "uVar15 = uVar15 - param_4[0x2c]" identifier = (binary_expression "uVar15 - param_4[0x2c]" identifier - (subscript_expression "param_4[0x2c]" identifier [ number_literal ]))) ;) (expression_statement "local_a0 = (uint **)param_4[0x30];" (assignment_expression "local_a0 = (uint **)param_4[0x30]" identifier = (cast_expression "(uint **)param_4[0x30]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0x30]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }" if (parenthesized_expression "((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15)" ( (binary_expression "(uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15" (call_expression "(uint)((int)((int)local_a0 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((int)local_a0 - param_4[0x2f]) >> 2)" ( (binary_expression "(int)((int)local_a0 - param_4[0x2f]) >> 2" (cast_expression "(int)((int)local_a0 - param_4[0x2f])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_a0 - param_4[0x2f])" ( (binary_expression "(int)local_a0 - param_4[0x2f]" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_4[0x2f]" identifier [ number_literal ])) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65dcc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" 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 *)(puVar17 + -0x14) = 0x8e7c4;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e7c4" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);" (assignment_expression "local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4)" identifier = (pointer_expression "*(uint **)(param_4[0x2f] + uVar15 * 4)" * (cast_expression "(uint **)(param_4[0x2f] + uVar15 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4[0x2f] + uVar15 * 4)" ( (binary_expression "param_4[0x2f] + uVar15 * 4" (subscript_expression "param_4[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_5c == (uint *)0x0) goto LAB_0008e2a7;" if (parenthesized_expression "(local_5c == (uint *)0x0)" ( (binary_expression "local_5c == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008e2a7;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }" if (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((int)local_5c + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" * (cast_expression "(byte *)((int)local_5c + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2a)" ( (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }" { (expression_statement "*(uint **)(puVar17 + -0xc) = local_5c;" (assignment_expression "*(uint **)(puVar17 + -0xc) = local_5c" (pointer_expression "*(uint **)(puVar17 + -0xc)" * (cast_expression "(uint **)(puVar17 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = param_2;" (assignment_expression "*(int *)(puVar17 + -0x10) = param_2" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e292;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e292" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5c = (uint *)FUN_0034cd90();" (assignment_expression "local_5c = (uint *)FUN_0034cd90()" identifier = (cast_expression "(uint *)FUN_0034cd90()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034cd90()" identifier (argument_list "()" ( ))))) ;) })) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" if (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_5c + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" * (cast_expression "(byte *)((int)local_5c + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2a)" ( (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }" { (expression_statement "local_e4 = (uint *)local_5c[0xc];" (assignment_expression "local_e4 = (uint *)local_5c[0xc]" identifier = (cast_expression "(uint *)local_5c[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_e0 = local_5c[0xd];" (assignment_expression "local_e0 = local_5c[0xd]" identifier = (subscript_expression "local_5c[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_bc = (int)local_e4 + local_b4;" (assignment_expression "local_bc = (int)local_e4 + local_b4" identifier = (binary_expression "(int)local_e4 + local_b4" (cast_expression "(int)local_e4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "local_ac = (uint *)local_5c[2];" (assignment_expression "local_ac = (uint *)local_5c[2]" identifier = (cast_expression "(uint *)local_5c[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[2]" identifier [ number_literal ]))) ;) (expression_statement "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);" (assignment_expression "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" identifier = (binary_expression "local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" (binary_expression "local_b0 + local_e0" identifier + identifier) + (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)local_e4)" identifier (argument_list "(local_b4,(uint)local_e4)" ( identifier , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = (local_ac[0xb] & 1) == 0;" (assignment_expression "bVar24 = (local_ac[0xb] & 1) == 0" identifier = (binary_expression "(local_ac[0xb] & 1) == 0" (parenthesized_expression "(local_ac[0xb] & 1)" ( (binary_expression "local_ac[0xb] & 1" (subscript_expression "local_ac[0xb]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }" { (expression_statement "local_a8 = (uint *)local_5c[3];" (assignment_expression "local_a8 = (uint *)local_5c[3]" identifier = (cast_expression "(uint *)local_5c[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar14 = (byte)local_5c[10] & 0xf;" (assignment_expression "bVar14 = (byte)local_5c[10] & 0xf" identifier = (binary_expression "(byte)local_5c[10] & 0xf" (cast_expression "(byte)local_5c[10]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[10]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;" (assignment_expression "local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_5c + 0x2b)" * (cast_expression "(byte *)((int)local_5c + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2b)" ( (binary_expression "(int)local_5c + 0x2b" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "bVar22 = bVar14 < 2;" (assignment_expression "bVar22 = bVar14 < 2" identifier = (binary_expression "bVar14 < 2" identifier < number_literal)) ;) (expression_statement "bVar24 = bVar14 == 2;" (assignment_expression "bVar24 = bVar14 == 2" identifier = (binary_expression "bVar14 == 2" identifier == number_literal)) ;) (if_statement "if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = local_bf == '\0';" (assignment_expression "bVar24 = local_bf == '\0'" identifier = (binary_expression "local_bf == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }" { (if_statement "if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }" if (parenthesized_expression "(local_bd != 0)" ( (binary_expression "local_bd != 0" identifier != number_literal) )) (compound_statement "{\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }" { (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }" if (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" ( (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }" { (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" * (cast_expression "(undefined4 *)(puVar17 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -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 *)(puVar17 + -0x14) = 0x8e88f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e88f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }" if (parenthesized_expression "((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0))" ( (binary_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)" (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_c4 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((*(byte *)((int)local_5c + 0x29) & 3) == 0)" ( (binary_expression "(*(byte *)((int)local_5c + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x29) & 3)" ( (binary_expression "*(byte *)((int)local_5c + 0x29) & 3" (pointer_expression "*(byte *)((int)local_5c + 0x29)" * (cast_expression "(byte *)((int)local_5c + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x29)" ( (binary_expression "(int)local_5c + 0x29" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }" { (expression_statement "bVar22 = local_f0 < (undefined **)0x2a;" (assignment_expression "bVar22 = local_f0 < (undefined **)0x2a" identifier = (binary_expression "local_f0 < (undefined **)0x2a" identifier < (cast_expression "(undefined **)0x2a" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "bVar24 = local_f0 == (undefined **)0x2a;" (assignment_expression "bVar24 = local_f0 == (undefined **)0x2a" identifier = (binary_expression "local_f0 == (undefined **)0x2a" identifier == (cast_expression "(undefined **)0x2a" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (if_statement "if (local_f0 < (undefined **)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }" if (parenthesized_expression "(local_f0 < (undefined **)0x2b)" ( (binary_expression "local_f0 < (undefined **)0x2b" identifier < (cast_expression "(undefined **)0x2b" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }" { comment comment (expression_statement "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" * (cast_expression "(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" ( (binary_expression "local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4" (subscript_expression "local_a4[(int)((int)local_f0 + -0x65f1a)]" identifier [ (cast_expression "(int)((int)local_f0 + -0x65f1a)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_f0 + -0x65f1a)" ( (binary_expression "(int)local_f0 + -0x65f1a" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0008dd50;" goto statement_identifier ;) })) })) (expression_statement "local_a0 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x15c)" * (cast_expression "(uint ***)(param_2 + 0x15c)" ( (type_descriptor "uint ***" 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 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint ****)(puVar17 + -0x14) = &local_88;" (assignment_expression "*(uint ****)(puVar17 + -0x14) = &local_88" (pointer_expression "*(uint ****)(puVar17 + -0x14)" * (cast_expression "(uint ****)(puVar17 + -0x14)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_88" & identifier)) ;) (expression_statement "*(uint ***)(puVar17 + -0x18) = &local_64;" (assignment_expression "*(uint ***)(puVar17 + -0x18) = &local_64" (pointer_expression "*(uint ***)(puVar17 + -0x18)" * (cast_expression "(uint ***)(puVar17 + -0x18)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" 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 "*(uint ***)(puVar17 + -0x1c) = local_88;" (assignment_expression "*(uint ***)(puVar17 + -0x1c) = local_88" (pointer_expression "*(uint ***)(puVar17 + -0x1c)" * (cast_expression "(uint ***)(puVar17 + -0x1c)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" * (cast_expression "(undefined1 **)(puVar17 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x8e54e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x8e54e" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" * (cast_expression "(undefined4 *)(puVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_ac;" (assignment_expression "local_64 = local_ac" 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 < puVar17 + -0x20;" (assignment_expression "bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20" identifier = (binary_expression "(undefined1 *)0xffffffe3 < puVar17 + -0x20" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar17 + -0x20" identifier + number_literal))) ;) (expression_statement "bVar24 = puVar17 == (undefined1 *)0x4;" (assignment_expression "bVar24 = puVar17 == (undefined1 *)0x4" identifier = (binary_expression "puVar17 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" identifier = (binary_expression "puVar17 + -4" identifier + number_literal)) ;) })) })) }) (else_clause "else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" else (compound_statement "{\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" { (expression_statement "local_bd = 0;" (assignment_expression "local_bd = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (uint *)0x0;" (assignment_expression "local_a8 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (uint *)0x0;" (assignment_expression "local_ac = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" else (compound_statement "{\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" { (expression_statement "local_e4 = (uint *)local_5c[0xc];" (assignment_expression "local_e4 = (uint *)local_5c[0xc]" identifier = (cast_expression "(uint *)local_5c[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_e0 = local_5c[0xd];" (assignment_expression "local_e0 = local_5c[0xd]" identifier = (subscript_expression "local_5c[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_bd = 0;" (assignment_expression "local_bd = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (uint *)0x0;" (assignment_expression "local_a8 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_bc = (int)local_e4 + local_b4;" (assignment_expression "local_bc = (int)local_e4 + local_b4" identifier = (binary_expression "(int)local_e4 + local_b4" (cast_expression "(int)local_e4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));" (assignment_expression "bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" identifier = (binary_expression "CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" (call_expression "CARRY4(local_b0,local_e0)" identifier (argument_list "(local_b0,local_e0)" ( identifier , identifier ))) || (call_expression "CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" identifier (argument_list "(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" ( (binary_expression "local_b0 + local_e0" identifier + identifier) , (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)local_e4)" identifier (argument_list "(local_b4,(uint)local_e4)" ( identifier , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ))))) ;) (expression_statement "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);" (assignment_expression "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" identifier = (binary_expression "local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" (binary_expression "local_b0 + local_e0" identifier + identifier) + (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)local_e4)" identifier (argument_list "(local_b4,(uint)local_e4)" ( identifier , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "bVar24 = local_b8 == 0;" (assignment_expression "bVar24 = local_b8 == 0" identifier = (binary_expression "local_b8 == 0" identifier == number_literal)) ;) (expression_statement "local_ac = (uint *)0x0;" (assignment_expression "local_ac = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;" statement_identifier : (expression_statement "pbVar20 = (byte *)*local_5c;" (assignment_expression "pbVar20 = (byte *)*local_5c" identifier = (cast_expression "(byte *)*local_5c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_5c" * identifier))) ;)) (expression_statement "ppuVar10 = (undefined **)&DAT_00000008;" (assignment_expression "ppuVar10 = (undefined **)&DAT_00000008" identifier = (cast_expression "(undefined **)&DAT_00000008" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000008" & identifier))) ;) (expression_statement "pbVar9 = (byte *)((int)local_a4 + -0x19ca26);" (assignment_expression "pbVar9 = (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 "pbVar21 = pbVar20;" (assignment_expression "pbVar21 = pbVar20" identifier = identifier) ;) (do_statement "do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar22 = *pbVar9 < *pbVar21;" (assignment_expression "bVar22 = *pbVar9 < *pbVar21" identifier = (binary_expression "*pbVar9 < *pbVar21" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar9 == *pbVar21;" (assignment_expression "bVar24 = *pbVar9 == *pbVar21" identifier = (binary_expression "*pbVar9 == *pbVar21" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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 "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (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          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          pbVar20 = pbVar20 + 8;\n        }" { (expression_statement "pbVar20 = pbVar20 + 8;" (assignment_expression "pbVar20 = pbVar20 + 8" identifier = (binary_expression "pbVar20 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" else (compound_statement "{\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" { (expression_statement "ppuVar10 = (undefined **)0x7;" (assignment_expression "ppuVar10 = (undefined **)0x7" identifier = (cast_expression "(undefined **)0x7" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);" (assignment_expression "pbVar9 = (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 "pbVar21 = pbVar20;" (assignment_expression "pbVar21 = pbVar20" identifier = identifier) ;) (do_statement "do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar23 = *pbVar9 < *pbVar21;" (assignment_expression "bVar23 = *pbVar9 < *pbVar21" identifier = (binary_expression "*pbVar9 < *pbVar21" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar22 = *pbVar9 == *pbVar21;" (assignment_expression "bVar22 = *pbVar9 == *pbVar21" identifier = (binary_expression "*pbVar9 == *pbVar21" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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 "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (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 "pbVar20 = pbVar20 + 7;" (assignment_expression "pbVar20 = pbVar20 + 7" identifier = (binary_expression "pbVar20 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\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            pbVar20 = local_cc;\n          }" { (expression_statement "pbVar20 = local_cc;" (assignment_expression "pbVar20 = local_cc" identifier = identifier) ;) })) }))) (expression_statement "local_cc = pbVar20;" (assignment_expression "local_cc = pbVar20" identifier = identifier) ;) (if_statement "if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }" if (parenthesized_expression "(local_be != '\0')" ( (binary_expression "local_be != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }" { (if_statement "if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" if (parenthesized_expression "(local_bd == 0)" ( (binary_expression "local_bd == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }" { (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" else (compound_statement "{\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" { (expression_statement "local_34 = local_ac;" (assignment_expression "local_34 = local_ac" 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 "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8ddbe" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_d0 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_d0 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_d0 + 4)" * (cast_expression "(undefined4 **)(local_d0 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_d0 + 4)" ( (binary_expression "local_d0 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_d0 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_d0 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_d0 + 8)" * (cast_expression "(undefined4 **)(local_d0 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_d0 + 8)" ( (binary_expression "local_d0 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }" { (expression_statement "*(uint ***)(puVar17 + -8) = &local_5c;" (assignment_expression "*(uint ***)(puVar17 + -8) = &local_5c" (pointer_expression "*(uint ***)(puVar17 + -8)" * (cast_expression "(uint ***)(puVar17 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" * (cast_expression "(undefined4 **)(puVar17 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e423;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e423" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" 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_d0 + 4) = puVar2 + 1;\n          }" else (compound_statement "{\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }" { (expression_statement "*puVar2 = local_5c;" (assignment_expression "*puVar2 = local_5c" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_d0 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_d0 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_d0 + 4)" * (cast_expression "(undefined4 **)(local_d0 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_d0 + 4)" ( (binary_expression "local_d0 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_e8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_e8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_e4;" (assignment_expression "local_34 = local_e4" identifier = identifier) ;) (expression_statement "local_30 = (uint *)local_e0;" (assignment_expression "local_30 = (uint *)local_e0" identifier = (cast_expression "(uint *)local_e0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_2c = local_b4;" (assignment_expression "local_2c = local_b4" identifier = identifier) ;) (expression_statement "local_28 = local_b0;" (assignment_expression "local_28 = local_b0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8de17;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8de17" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar18 = (uint *)*param_7;" (assignment_expression "puVar18 = (uint *)*param_7" identifier = (cast_expression "(uint *)*param_7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_7" * identifier))) ;) (if_statement "if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(param_7[1] != 0)" ( (binary_expression "param_7[1] != 0" (subscript_expression "param_7[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" * (cast_expression "(undefined ***)(puVar17 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x672d3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e803;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e803" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)local_d4[1];" (assignment_expression "puVar2 = (undefined4 *)local_d4[1]" identifier = (cast_expression "(undefined4 *)local_d4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d4[1]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" identifier = identifier) ;) (if_statement "if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" if (parenthesized_expression "(puVar2 == (undefined4 *)local_d4[2])" ( (binary_expression "puVar2 == (undefined4 *)local_d4[2]" identifier == (cast_expression "(undefined4 *)local_d4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d4[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }" { (expression_statement "*(uint ***)(puVar17 + -8) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -8) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -8)" * (cast_expression "(uint ***)(puVar17 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" * (cast_expression "(undefined4 **)(puVar17 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_d4;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_d4" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" * (cast_expression "(undefined ***)(puVar17 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e445;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e445" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" else (compound_statement "{\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" { (expression_statement "*puVar2 = puVar18;" (assignment_expression "*puVar2 = puVar18" (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 "local_d4[1] = (undefined *)(puVar2 + 2);" (assignment_expression "local_d4[1] = (undefined *)(puVar2 + 2)" (subscript_expression "local_d4[1]" identifier [ number_literal ]) = (cast_expression "(undefined *)(puVar2 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 2)" ( (binary_expression "puVar2 + 2" identifier + number_literal) )))) ;) }))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar17 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8de6e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8de6e" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = extraout_ECX_03;" (assignment_expression "ppuVar10 = extraout_ECX_03" identifier = identifier) ;) })) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (if_statement "if (local_bd != 0) goto LAB_0008de7e;" if (parenthesized_expression "(local_bd != 0)" ( (binary_expression "local_bd != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008de7e;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0008db0d:\n      local_dc = local_dc + 1;" statement_identifier : (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;)) (expression_statement "param_7 = param_7 + 6;" (assignment_expression "param_7 = param_7 + 6" identifier = (binary_expression "param_7 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_8 != local_dc)" ( (binary_expression "param_8 != local_dc" identifier != identifier) )) ;) })) (if_statement "if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_4c[0] != local_f8)" ( (binary_expression "local_4c[0] != local_f8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }" { (expression_statement "*(byte **)(puVar17 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar17 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar17 + -0x10)" * (cast_expression "(byte **)(puVar17 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dc0a" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" 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<64> * this, Symbol_table * symtab,\n   Layout * layout, Sized_relobj_file<64,_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<64>::gc_process_relocs\n          (Target_x86_64<64> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<64,_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  pointer puVar1;\n  pointer ppSVar2;\n  _Base_ptr p_Var3;\n  Target *pTVar4;\n  Garbage_collection *pGVar5;\n  undefined4 *puVar6;\n  _func_int_varargs *p_Var7;\n  pointer *ppuVar8;\n  Icf *pIVar9;\n  undefined1 *puVar10;\n  Parameters *pPVar11;\n  size_t sVar12;\n  _func_int_varargs **pp_Var13;\n  Xindex *pXVar14;\n  pointer pcVar15;\n  _Rb_tree_header *extraout_ECX;\n  _Rb_tree_header *extraout_ECX_00;\n  _Rb_tree_header *extraout_ECX_01;\n  _Rb_tree_header *extraout_ECX_02;\n  _Rb_tree_header *p_Var16;\n  _Rb_tree_header *extraout_ECX_03;\n  _Rb_tree_header *p_Var17;\n  _Rb_tree_header *extraout_ECX_04;\n  _Rb_tree_header *extraout_ECX_05;\n  _Base_ptr p_Var18;\n  _Rb_tree_header *extraout_ECX_06;\n  _Rb_tree_header *extraout_ECX_07;\n  _Rb_tree_header *extraout_ECX_08;\n  _Rb_tree_header *extraout_ECX_09;\n  int iVar19;\n  _Rb_tree_header *extraout_ECX_10;\n  byte bVar20;\n  uint uVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  Relobj *pRVar24;\n  undefined **ppuVar25;\n  byte *pbVar26;\n  pointer ppOVar27;\n  _func_int_varargs **pp_Var28;\n  _Alloc_hider _Var29;\n  bool bVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  undefined1 auStack_fc [4];\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_f8;\n  __node_gen_type *local_f4;\n  _Rb_tree_header *local_f0;\n  Reloc_addend_size_info *local_ec;\n  Addend_info *local_e8;\n  Relobj *local_e4;\n  Compressed_section_map *local_e0;\n  size_t local_dc;\n  undefined1 *local_d8;\n  Offset_info *local_d4;\n  Symbol_info *local_d0;\n  _func_int_varargs **local_cc;\n  mapped_type *local_c8;\n  Parameters **local_c4;\n  bool local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  pointer local_b4;\n  __bucket_type *local_b0;\n  Output_segment *local_ac;\n  Relobj *local_a8;\n  undefined **local_a4;\n  Icf *local_a0;\n  undefined1 *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<64,_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  bVar33 = 0;\n  local_a4 = &_GLOBAL_OFFSET_TABLE_;\n  if (sh_type == 9) {\n    return;\n  }\n  local_c4 = &gold::parameters;\n  if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (gold::parameters->options_->icf_status_ == ICF_NONE) {\n    local_f8 = &src_section_name.field_2;\n    src_section_name._M_dataplus._M_p = (pointer)local_f8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    puVar23 = (undefined4 *)auStack_fc;\n    p_Var16 = extraout_ECX_01;\n  }\n  else {\n    (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_f8 = &src_section_name.field_2;\n    puVar23 = (undefined4 *)&stack0xffffff00;\n    p_Var16 = extraout_ECX;\n  }\n  _Var29._M_p = src_section_name._M_dataplus._M_p;\n  pPVar11 = *local_c4;\n  if (pPVar11->options_ == (General_options *)0x0) {\n    *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e857;\n    gold::do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));\n  }\n  if (pPVar11->options_->icf_status_ == ICF_NONE) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = (Reloc_addend_size_info *)0x0;\n    local_d4 = (Offset_info *)0x0;\n    local_e8 = (Addend_info *)0x0;\n    local_d0 = (Symbol_info *)0x0;\n    local_c8 = (mapped_type *)0x0;\n  }\n  else {\n    local_a8 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar15 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e647;\n      sVar12 = strlen(*(char **)((int)puVar23 + -0x10));\n      pcVar15 = _Var29._M_p + sVar12;\n    }\n    *(undefined4 *)((int)puVar23 + -4) = 0;\n    *(pointer *)((int)puVar23 + -8) = pcVar15;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)puVar23 + -0xc) = _Var29._M_p;\n    *(Icf **)((int)puVar23 + -0x10) = local_a0;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e65f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar19 = 5;\n    bVar30 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10);\n    bVar32 = puVar23 == (undefined4 *)0x0;\n    ppuVar25 = local_a4 + -0x67293;\n    pRVar24 = src_id.first;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n      bVar30 = *(byte *)ppuVar25 < bVar20;\n      bVar32 = *(byte *)ppuVar25 == bVar20;\n      ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n      pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n    } while (bVar32);\n    bVar31 = false;\n    bVar30 = (!bVar30 && !bVar32) == bVar30;\n    if (!bVar30) {\n      p_Var16 = (_Rb_tree_header *)0xf;\n      pbVar26 = (byte *)((int)local_a4 + -0x19ca46);\n      pRVar24 = src_id.first;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n        bVar31 = *pbVar26 < bVar20;\n        bVar30 = *pbVar26 == bVar20;\n        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar31 && !bVar30) != bVar31) {\n        if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (src_id.first != local_a8) {\n      *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;\n      operator_delete(*(void **)((int)puVar23 + -0x10));\n    }\n    *(Icf **)((int)puVar23 + -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)puVar23 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e6d4;\n    local_c8 = 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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -0xc));\n    p_Var16 = (_Rb_tree_header *)&local_c8->offset_info;\n    local_d0 = &local_c8->symbol_info;\n    local_ec = &local_c8->reloc_addend_size_info;\n    local_e8 = &local_c8->addend_info;\n    local_d4 = (Offset_info *)p_Var16;\n    pPVar11 = *local_c4;\n    local_be = '\x01';\n  }\n  if (pPVar11->options_ == (General_options *)0x0) {\n    *(undefined4 *)((int)puVar23 + -4) = 0;\n    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e873;\n    gold::do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));\n  }\n  local_bf = false;\n  if (pPVar11->options_->icf_status_ == ICF_SAFE) {\n    *(Target_x86_64<64> **)((int)puVar23 + -0x10) = this;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e56b;\n    local_bf = do_can_check_for_function_pointers(*(Target_x86_64<64> **)((int)puVar23 + -0x10));\n    bVar30 = false;\n    bVar32 = !local_bf;\n    p_Var16 = extraout_ECX_09;\n    if (!bVar32) {\n      p_Var16 = (_Rb_tree_header *)0xc;\n      local_bf = false;\n      ppuVar25 = local_a4 + -0x66894;\n      _Var29 = src_section_name._M_dataplus;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;\n        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n      } while (bVar32);\n      bVar31 = false;\n      bVar30 = (!bVar30 && !bVar32) == bVar30;\n      if (!bVar30) {\n        p_Var16 = (_Rb_tree_header *)0x11;\n        pbVar26 = (byte *)((int)local_a4 + -0x19a243);\n        _Var29 = src_section_name._M_dataplus;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        } while (bVar30);\n        bVar32 = false;\n        bVar30 = (!bVar31 && !bVar30) == bVar31;\n        if (!bVar30) {\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (reloc_count != 0) {\n    local_cc = (_func_int_varargs **)0x0;\n    local_d8 = local_94;\n    local_dc = 0;\n    local_f4 = &__node_gen;\n    do {\n      local_f0 = *(_Rb_tree_header **)(prelocs + 8);\n      uVar21 = *(uint *)(prelocs + 0xc);\n      local_b4 = *(pointer *)(prelocs + 0x10);\n      local_b0 = *(__bucket_type **)(prelocs + 0x14);\n      if (uVar21 < param_10) {\n        if (plocal_symbols == (uchar *)0x0) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0xea;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e764;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        local_ac = (Output_segment *)(plocal_symbols + uVar21 * 0x18);\n        local_a8 = (Relobj *)\n                   (uint)*(ushort *)\n                          ((int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_finish + 2);\n        if (local_a8 < (Relobj *)0xff00) {\nLAB_0008db84:\n          pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;\n          ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;\n          local_bc = (int)&local_b4->first + (int)pRVar24;\n          local_b8 = (int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;\n          if (local_be != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dbe0;\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)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n            bVar30 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (Relobj *)0xffff) {\n            pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar14 == (Xindex *)0x0) {\n              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;\n              p_Var7 = pp_Var13[0x1b];\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;\n              pXVar14 = (Xindex *)(*p_Var7)();\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;\n            }\n            *(uint *)((int)puVar23 + -8) = uVar21;\n            *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;\n            *(Xindex **)((int)puVar23 + -0x10) = pXVar14;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));\n            p_Var16 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;\n          ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;\n          local_bc = (int)&local_b4->first + (int)pRVar24;\n          local_b8 = (int)*(__bucket_type **)(prelocs + 0x14) +\n                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;\n          if (local_be == '\0') goto LAB_0008db0d;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8da41;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          bVar30 = false;\nLAB_0008da46:\n          local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish;\n          if ((local_bd & 0xf) == 3) {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          else {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0x0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          src_id.first = pRVar24;\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.second = (uint)ppOVar27;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8daab;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8db02;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_00;\n          if (!bVar30) goto LAB_0008db0d;\n        }\n        if (local_bf != false) {\n          bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n          local_a0 = (Icf *)CONCAT31(local_a0._1_3_,bVar20);\n          if ((bVar20 & 0xf) != 1) {\n            if ((*local_c4)->options_ == (General_options *)0x0) {\n              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));\n            }\n            if (((*local_c4)->options_->shared_).value == false) {\n              p_Var16 = local_f0;\n              if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = symtab->icf_;\n              local_6c = object;\n              local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);\n              *(undefined4 *)((int)puVar23 + -0xc) = 1;\n              *(undefined4 *)((int)puVar23 + -0x10) = 0;\n              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;\n              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;\n              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;\n              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                        ();\n              puVar23 = (undefined4 *)((int)puVar23 + -4);\n              p_Var16 = extraout_ECX_08;\n            }\n          }\n        }\n        if ((Relobj *)data_shndx != local_a8) {\n          local_ac = (Output_segment *)object;\n          puVar22 = puVar23;\nLAB_0008de7e:\n          if ((*local_c4)->options_ == (General_options *)0x0) {\n            puVar22[-2] = local_a4 + -0x65b32;\n            puVar22[-3] = 0x5c;\n            puVar22[-4] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar22[-5] = 0x8e782;\n            gold::do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2]);\n          }\n          puVar23 = puVar22;\n          if (((*local_c4)->options_->gc_sections_).value != false) {\n            src_id_1.first = (Relobj *)object;\n            p_Var16 = &(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_ac;\n            dst_id.second = (uint)local_a8;\n            p_Var3 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;\n            p_Var18 = &p_Var16->_M_header;\n            if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008df10:\n              puVar22[-4] = &local_74;\n              local_74 = &src_id_1;\n              puVar22[-5] = 0x8df2b;\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                          *)puVar22[-4],(_Base_ptr)puVar22[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-2],\n                         (tuple<> *)puVar22[-1],(piecewise_construct_t *)*puVar22);\n              p_Var17 = local_98;\n            }\n            else {\n              do {\n                while ((p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008defa;\n                }\n                p_Var3 = (_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                         _M_start;\n                p_Var17 = (_Rb_tree_header *)p_Var18;\n              } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008defa:\n              if (((p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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            pTVar4 = (*local_c4)->target_;\n            if (pTVar4 == (Target *)0x0) {\n              puVar22[-3] = local_a4 + -0x65db8;\n              puVar22[-4] = 0x73;\n              puVar22[-5] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar22[-6] = 0x8e7e2;\n              gold::do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3]);\n            }\n            ppuVar25 = (undefined **)pTVar4->_vptr_Target[0x41];\n            p_Var16 = (_Rb_tree_header *)(local_a4 + -0x1569f4);\n            if ((_Rb_tree_header *)ppuVar25 != p_Var16) {\n              puVar22[-2] = local_b8;\n              puVar22[-3] = local_bc;\n              puVar22[-4] = local_a8;\n              puVar22[-5] = local_ac;\n              puVar22[-6] = data_shndx;\n              puVar22[-7] = object;\n              puVar22[-8] = symtab;\n              puVar22[-9] = pTVar4;\n              puVar22[-10] = 0x8e0fc;\n              (*(code *)ppuVar25)();\n              p_Var16 = extraout_ECX_07;\n            }\n            pp_Var13 = local_cc;\n            puVar23 = puVar22 + -1;\n            if (local_cc != (_func_int_varargs **)0x0) {\n              local_a8 = (Relobj *)&local_2c;\n              pGVar5 = symtab->gc_;\n              puVar22[-5] = local_cc;\n              src_id.first = (Relobj *)&local_2c;\n              local_a0 = (Icf *)&src_id;\n              puVar22[-6] = 0x8dfc4;\n              sVar12 = strlen((char *)puVar22[-5]);\n              pIVar9 = local_a0;\n              puVar22[-2] = 0;\n              puVar22[-3] = (byte *)((int)pp_Var13 + sVar12);\n              puVar22[-4] = pp_Var13;\n              puVar22[-5] = local_a0;\n              puVar22[-6] = 0x8dfd9;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar22[-3] = pIVar9;\n              puVar22[-4] = &pGVar5->cident_sections_;\n              puVar22[-5] = &local_9c;\n              puVar22[-6] = 0x8dfed;\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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc);\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_f8) {\n    *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc0a;\n    operator_delete(*(void **)((int)puVar23 + -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<64>::" identifier . identifier : : identifier < number_literal > : :) (function_declarator "gc_process_relocs\n          (Target_x86_64<64> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<64,_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<64> *this,Symbol_table *symtab,Layout *layout,\n          Sized_relobj_file<64,_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<64> *this" type_identifier (ERROR "<64>" < 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 "<64" < 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 "pointer puVar1;" type_identifier identifier ;) (declaration "pointer ppSVar2;" type_identifier identifier ;) (declaration "_Base_ptr p_Var3;" type_identifier identifier ;) (declaration "Target *pTVar4;" type_identifier (pointer_declarator "*pTVar4" * identifier) ;) (declaration "Garbage_collection *pGVar5;" type_identifier (pointer_declarator "*pGVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "_func_int_varargs *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (declaration "pointer *ppuVar8;" type_identifier (pointer_declarator "*ppuVar8" * identifier) ;) (declaration "Icf *pIVar9;" type_identifier (pointer_declarator "*pIVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "Parameters *pPVar11;" type_identifier (pointer_declarator "*pPVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "_func_int_varargs **pp_Var13;" type_identifier (pointer_declarator "**pp_Var13" * (pointer_declarator "*pp_Var13" * identifier)) ;) (declaration "Xindex *pXVar14;" type_identifier (pointer_declarator "*pXVar14" * identifier) ;) (declaration "pointer pcVar15;" type_identifier identifier ;) (declaration "_Rb_tree_header *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_00;" type_identifier (pointer_declarator "*extraout_ECX_00" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_01;" type_identifier (pointer_declarator "*extraout_ECX_01" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_02;" type_identifier (pointer_declarator "*extraout_ECX_02" * identifier) ;) (declaration "_Rb_tree_header *p_Var16;" type_identifier (pointer_declarator "*p_Var16" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_03;" type_identifier (pointer_declarator "*extraout_ECX_03" * identifier) ;) (declaration "_Rb_tree_header *p_Var17;" type_identifier (pointer_declarator "*p_Var17" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_04;" type_identifier (pointer_declarator "*extraout_ECX_04" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_05;" type_identifier (pointer_declarator "*extraout_ECX_05" * identifier) ;) (declaration "_Base_ptr p_Var18;" type_identifier identifier ;) (declaration "_Rb_tree_header *extraout_ECX_06;" type_identifier (pointer_declarator "*extraout_ECX_06" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_07;" type_identifier (pointer_declarator "*extraout_ECX_07" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_08;" type_identifier (pointer_declarator "*extraout_ECX_08" * identifier) ;) (declaration "_Rb_tree_header *extraout_ECX_09;" type_identifier (pointer_declarator "*extraout_ECX_09" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "_Rb_tree_header *extraout_ECX_10;" type_identifier (pointer_declarator "*extraout_ECX_10" * identifier) ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "Relobj *pRVar24;" type_identifier (pointer_declarator "*pRVar24" * identifier) ;) (declaration "undefined **ppuVar25;" type_identifier (pointer_declarator "**ppuVar25" * (pointer_declarator "*ppuVar25" * identifier)) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "pointer ppOVar27;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var28;" type_identifier (pointer_declarator "**pp_Var28" * (pointer_declarator "*pp_Var28" * identifier)) ;) (declaration "_Alloc_hider _Var29;" type_identifier identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "byte bVar33;" type_identifier identifier ;) (declaration "undefined1 auStack_fc [4];" type_identifier (array_declarator "auStack_fc [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_f8;" (binary_expression "allocator<char>_>_9\n  *local_f8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *local_f8" identifier * identifier)) ;) (declaration "__node_gen_type *local_f4;" type_identifier (pointer_declarator "*local_f4" * identifier) ;) (declaration "_Rb_tree_header *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "Reloc_addend_size_info *local_ec;" type_identifier (pointer_declarator "*local_ec" * identifier) ;) (declaration "Addend_info *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "Relobj *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "Compressed_section_map *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "size_t local_dc;" primitive_type identifier ;) (declaration "undefined1 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "Offset_info *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "Symbol_info *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "_func_int_varargs **local_cc;" type_identifier (pointer_declarator "**local_cc" * (pointer_declarator "*local_cc" * identifier)) ;) (declaration "mapped_type *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "Parameters **local_c4;" type_identifier (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)) ;) (declaration "bool local_bf;" primitive_type identifier ;) (declaration "char local_be;" primitive_type identifier ;) (declaration "byte local_bd;" type_identifier identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "pointer local_b4;" type_identifier identifier ;) (declaration "__bucket_type *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "Output_segment *local_ac;" type_identifier (pointer_declarator "*local_ac" * 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 "undefined1 *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<64,_false> *local_6c;" (comma_expression "Sized_relobj_file<64,_false> *local_6c" (binary_expression "Sized_relobj_file<64" 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 "bVar33 = 0;" (assignment_expression "bVar33 = 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_c4 = &gold::parameters;" (assignment_expression "local_c4 = &gold" identifier = (pointer_expression "&gold" & identifier)) (ERROR "::parameters" : : identifier) ;) (if_statement "if (gold::parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(gold::parameters->options_ == (General_options *)0x0)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { 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 (gold::parameters->options_->icf_status_ == ICF_NONE) {\n    local_f8 = &src_section_name.field_2;\n    src_section_name._M_dataplus._M_p = (pointer)local_f8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    puVar23 = (undefined4 *)auStack_fc;\n    p_Var16 = extraout_ECX_01;\n  }\n  else {\n    (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_f8 = &src_section_name.field_2;\n    puVar23 = (undefined4 *)&stack0xffffff00;\n    p_Var16 = extraout_ECX;\n  }" if (parenthesized_expression "(gold::parameters->options_->icf_status_ == ICF_NONE)" ( (ERROR "gold::" identifier : :) (binary_expression "parameters->options_->icf_status_ == ICF_NONE" (field_expression "parameters->options_->icf_status_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n    local_f8 = &src_section_name.field_2;\n    src_section_name._M_dataplus._M_p = (pointer)local_f8;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,"","");\n    puVar23 = (undefined4 *)auStack_fc;\n    p_Var16 = extraout_ECX_01;\n  }" { (expression_statement "local_f8 = &src_section_name.field_2;" (assignment_expression "local_f8 = &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 "src_section_name._M_dataplus._M_p = (pointer)local_f8;" (assignment_expression "src_section_name._M_dataplus._M_p = (pointer)local_f8" (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_f8" ( (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 "puVar23 = (undefined4 *)auStack_fc;" (assignment_expression "puVar23 = (undefined4 *)auStack_fc" identifier = (cast_expression "(undefined4 *)auStack_fc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var16 = extraout_ECX_01;" (assignment_expression "p_Var16 = extraout_ECX_01" identifier = identifier) ;) }) (else_clause "else {\n    (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_f8 = &src_section_name.field_2;\n    puVar23 = (undefined4 *)&stack0xffffff00;\n    p_Var16 = extraout_ECX;\n  }" else (compound_statement "{\n    (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);\n    local_f8 = &src_section_name.field_2;\n    puVar23 = (undefined4 *)&stack0xffffff00;\n    p_Var16 = extraout_ECX;\n  }" { (expression_statement "(*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx);" (call_expression "(*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n              (&src_section_name,object,data_shndx)" (parenthesized_expression "(*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])" ( (pointer_expression "*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10]" * (subscript_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10]" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (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_f8 = &src_section_name.field_2;" (assignment_expression "local_f8 = &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 "puVar23 = (undefined4 *)&stack0xffffff00;" (assignment_expression "puVar23 = (undefined4 *)&stack0xffffff00" identifier = (cast_expression "(undefined4 *)&stack0xffffff00" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffff00" & identifier))) ;) (expression_statement "p_Var16 = extraout_ECX;" (assignment_expression "p_Var16 = extraout_ECX" identifier = identifier) ;) }))) (expression_statement "_Var29._M_p = src_section_name._M_dataplus._M_p;" (assignment_expression "_Var29._M_p = src_section_name._M_dataplus._M_p" (field_expression "_Var29._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 "pPVar11 = *local_c4;" (assignment_expression "pPVar11 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (if_statement "if (pPVar11->options_ == (General_options *)0x0) {\n    *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e857;\n    gold::do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));\n  }" if (parenthesized_expression "(pPVar11->options_ == (General_options *)0x0)" ( (binary_expression "pPVar11->options_ == (General_options *)0x0" (field_expression "pPVar11->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e857;\n    gold::do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));\n  }" { (expression_statement "*(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;" (assignment_expression "*(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16" (pointer_expression "*(_Rb_tree_header **)((int)puVar23 + -4)" * (cast_expression "(_Rb_tree_header **)((int)puVar23 + -4)" ( (type_descriptor "_Rb_tree_header **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -4)" ( (binary_expression "(int)puVar23 + -4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)puVar23 + -8)" * (cast_expression "(undefined ***)((int)puVar23 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)puVar23 + -0x10)" * (cast_expression "(int *)((int)puVar23 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e857;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e857" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (pPVar11->options_->icf_status_ == ICF_NONE) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = (Reloc_addend_size_info *)0x0;\n    local_d4 = (Offset_info *)0x0;\n    local_e8 = (Addend_info *)0x0;\n    local_d0 = (Symbol_info *)0x0;\n    local_c8 = (mapped_type *)0x0;\n  }\n  else {\n    local_a8 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar15 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e647;\n      sVar12 = strlen(*(char **)((int)puVar23 + -0x10));\n      pcVar15 = _Var29._M_p + sVar12;\n    }\n    *(undefined4 *)((int)puVar23 + -4) = 0;\n    *(pointer *)((int)puVar23 + -8) = pcVar15;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)puVar23 + -0xc) = _Var29._M_p;\n    *(Icf **)((int)puVar23 + -0x10) = local_a0;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e65f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar19 = 5;\n    bVar30 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10);\n    bVar32 = puVar23 == (undefined4 *)0x0;\n    ppuVar25 = local_a4 + -0x67293;\n    pRVar24 = src_id.first;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n      bVar30 = *(byte *)ppuVar25 < bVar20;\n      bVar32 = *(byte *)ppuVar25 == bVar20;\n      ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n      pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n    } while (bVar32);\n    bVar31 = false;\n    bVar30 = (!bVar30 && !bVar32) == bVar30;\n    if (!bVar30) {\n      p_Var16 = (_Rb_tree_header *)0xf;\n      pbVar26 = (byte *)((int)local_a4 + -0x19ca46);\n      pRVar24 = src_id.first;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n        bVar31 = *pbVar26 < bVar20;\n        bVar30 = *pbVar26 == bVar20;\n        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar31 && !bVar30) != bVar31) {\n        if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (src_id.first != local_a8) {\n      *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;\n      operator_delete(*(void **)((int)puVar23 + -0x10));\n    }\n    *(Icf **)((int)puVar23 + -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)puVar23 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e6d4;\n    local_c8 = 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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -0xc));\n    p_Var16 = (_Rb_tree_header *)&local_c8->offset_info;\n    local_d0 = &local_c8->symbol_info;\n    local_ec = &local_c8->reloc_addend_size_info;\n    local_e8 = &local_c8->addend_info;\n    local_d4 = (Offset_info *)p_Var16;\n    pPVar11 = *local_c4;\n    local_be = '\x01';\n  }" if (parenthesized_expression "(pPVar11->options_->icf_status_ == ICF_NONE)" ( (binary_expression "pPVar11->options_->icf_status_ == ICF_NONE" (field_expression "pPVar11->options_->icf_status_" (field_expression "pPVar11->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = (Reloc_addend_size_info *)0x0;\n    local_d4 = (Offset_info *)0x0;\n    local_e8 = (Addend_info *)0x0;\n    local_d0 = (Symbol_info *)0x0;\n    local_c8 = (mapped_type *)0x0;\n  }" { (labeled_statement "LAB_0008d94f:\n    local_be = '\0';" statement_identifier : (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_ec = (Reloc_addend_size_info *)0x0;" (assignment_expression "local_ec = (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_d4 = (Offset_info *)0x0;" (assignment_expression "local_d4 = (Offset_info *)0x0" identifier = (cast_expression "(Offset_info *)0x0" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e8 = (Addend_info *)0x0;" (assignment_expression "local_e8 = (Addend_info *)0x0" identifier = (cast_expression "(Addend_info *)0x0" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = (Symbol_info *)0x0;" (assignment_expression "local_d0 = (Symbol_info *)0x0" identifier = (cast_expression "(Symbol_info *)0x0" ( (type_descriptor "Symbol_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = (mapped_type *)0x0;" (assignment_expression "local_c8 = (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    pcVar15 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e647;\n      sVar12 = strlen(*(char **)((int)puVar23 + -0x10));\n      pcVar15 = _Var29._M_p + sVar12;\n    }\n    *(undefined4 *)((int)puVar23 + -4) = 0;\n    *(pointer *)((int)puVar23 + -8) = pcVar15;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)puVar23 + -0xc) = _Var29._M_p;\n    *(Icf **)((int)puVar23 + -0x10) = local_a0;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e65f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar19 = 5;\n    bVar30 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10);\n    bVar32 = puVar23 == (undefined4 *)0x0;\n    ppuVar25 = local_a4 + -0x67293;\n    pRVar24 = src_id.first;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n      bVar30 = *(byte *)ppuVar25 < bVar20;\n      bVar32 = *(byte *)ppuVar25 == bVar20;\n      ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n      pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n    } while (bVar32);\n    bVar31 = false;\n    bVar30 = (!bVar30 && !bVar32) == bVar30;\n    if (!bVar30) {\n      p_Var16 = (_Rb_tree_header *)0xf;\n      pbVar26 = (byte *)((int)local_a4 + -0x19ca46);\n      pRVar24 = src_id.first;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n        bVar31 = *pbVar26 < bVar20;\n        bVar30 = *pbVar26 == bVar20;\n        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar31 && !bVar30) != bVar31) {\n        if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (src_id.first != local_a8) {\n      *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;\n      operator_delete(*(void **)((int)puVar23 + -0x10));\n    }\n    *(Icf **)((int)puVar23 + -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)puVar23 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e6d4;\n    local_c8 = 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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -0xc));\n    p_Var16 = (_Rb_tree_header *)&local_c8->offset_info;\n    local_d0 = &local_c8->symbol_info;\n    local_ec = &local_c8->reloc_addend_size_info;\n    local_e8 = &local_c8->addend_info;\n    local_d4 = (Offset_info *)p_Var16;\n    pPVar11 = *local_c4;\n    local_be = '\x01';\n  }" else (compound_statement "{\n    local_a8 = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar15 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e647;\n      sVar12 = strlen(*(char **)((int)puVar23 + -0x10));\n      pcVar15 = _Var29._M_p + sVar12;\n    }\n    *(undefined4 *)((int)puVar23 + -4) = 0;\n    *(pointer *)((int)puVar23 + -8) = pcVar15;\n    local_a0 = (Icf *)&src_id;\n    *(pointer *)((int)puVar23 + -0xc) = _Var29._M_p;\n    *(Icf **)((int)puVar23 + -0x10) = local_a0;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e65f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar19 = 5;\n    bVar30 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10);\n    bVar32 = puVar23 == (undefined4 *)0x0;\n    ppuVar25 = local_a4 + -0x67293;\n    pRVar24 = src_id.first;\n    do {\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n      bVar30 = *(byte *)ppuVar25 < bVar20;\n      bVar32 = *(byte *)ppuVar25 == bVar20;\n      ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n      pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n    } while (bVar32);\n    bVar31 = false;\n    bVar30 = (!bVar30 && !bVar32) == bVar30;\n    if (!bVar30) {\n      p_Var16 = (_Rb_tree_header *)0xf;\n      pbVar26 = (byte *)((int)local_a4 + -0x19ca46);\n      pRVar24 = src_id.first;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n        bVar31 = *pbVar26 < bVar20;\n        bVar30 = *pbVar26 == bVar20;\n        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar31 && !bVar30) != bVar31) {\n        if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (src_id.first != local_a8) {\n      *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;\n      operator_delete(*(void **)((int)puVar23 + -0x10));\n    }\n    *(Icf **)((int)puVar23 + -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)puVar23 + -0x10) = &symtab->icf_->reloc_info_list_;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e6d4;\n    local_c8 = 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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -0xc));\n    p_Var16 = (_Rb_tree_header *)&local_c8->offset_info;\n    local_d0 = &local_c8->symbol_info;\n    local_ec = &local_c8->reloc_addend_size_info;\n    local_e8 = &local_c8->addend_info;\n    local_d4 = (Offset_info *)p_Var16;\n    pPVar11 = *local_c4;\n    local_be = '\x01';\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 "pcVar15 = (pointer)0xffffffff;" (assignment_expression "pcVar15 = (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)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e647;\n      sVar12 = strlen(*(char **)((int)puVar23 + -0x10));\n      pcVar15 = _Var29._M_p + sVar12;\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)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e647;\n      sVar12 = strlen(*(char **)((int)puVar23 + -0x10));\n      pcVar15 = _Var29._M_p + sVar12;\n    }" { (expression_statement "*(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar23 + -0x10)" * (cast_expression "(pointer *)((int)puVar23 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e647;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e647" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar12 = strlen(*(char **)((int)puVar23 + -0x10));" (assignment_expression "sVar12 = strlen(*(char **)((int)puVar23 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)puVar23 + -0x10))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar15 = _Var29._M_p + sVar12;" (assignment_expression "pcVar15 = _Var29._M_p + sVar12" identifier = (binary_expression "_Var29._M_p + sVar12" (field_expression "_Var29._M_p" identifier . field_identifier) + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)puVar23 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar23 + -4) = 0" (pointer_expression "*(undefined4 *)((int)puVar23 + -4)" * (cast_expression "(undefined4 *)((int)puVar23 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -4)" ( (binary_expression "(int)puVar23 + -4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)puVar23 + -8) = pcVar15;" (assignment_expression "*(pointer *)((int)puVar23 + -8) = pcVar15" (pointer_expression "*(pointer *)((int)puVar23 + -8)" * (cast_expression "(pointer *)((int)puVar23 + -8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (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)puVar23 + -0xc) = _Var29._M_p;" (assignment_expression "*(pointer *)((int)puVar23 + -0xc) = _Var29._M_p" (pointer_expression "*(pointer *)((int)puVar23 + -0xc)" * (cast_expression "(pointer *)((int)puVar23 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "_Var29._M_p" identifier . field_identifier)) ;) (expression_statement "*(Icf **)((int)puVar23 + -0x10) = local_a0;" (assignment_expression "*(Icf **)((int)puVar23 + -0x10) = local_a0" (pointer_expression "*(Icf **)((int)puVar23 + -0x10)" * (cast_expression "(Icf **)((int)puVar23 + -0x10)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e65f;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e65f" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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 "bVar30 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10);" (assignment_expression "bVar30 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)puVar23 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar32 = puVar23 == (undefined4 *)0x0;" (assignment_expression "bVar32 = puVar23 == (undefined4 *)0x0" identifier = (binary_expression "puVar23 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "ppuVar25 = local_a4 + -0x67293;" (assignment_expression "ppuVar25 = local_a4 + -0x67293" identifier = (binary_expression "local_a4 + -0x67293" identifier + number_literal)) ;) (expression_statement "pRVar24 = src_id.first;" (assignment_expression "pRVar24 = 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      bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n      bVar30 = *(byte *)ppuVar25 < bVar20;\n      bVar32 = *(byte *)ppuVar25 == bVar20;\n      ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n      pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n    } while (bVar32);" do (compound_statement "{\n      if (iVar19 == 0) break;\n      iVar19 = iVar19 + -1;\n      bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n      bVar30 = *(byte *)ppuVar25 < bVar20;\n      bVar32 = *(byte *)ppuVar25 == bVar20;\n      ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n      pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -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 "bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;" (assignment_expression "bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar24->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar24->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar24->super_Object)._vptr_Object" & (field_expression "(pRVar24->super_Object)._vptr_Object" (parenthesized_expression "(pRVar24->super_Object)" ( (field_expression "pRVar24->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar30 = *(byte *)ppuVar25 < bVar20;" (assignment_expression "bVar30 = *(byte *)ppuVar25 < bVar20" identifier = (binary_expression "*(byte *)ppuVar25 < bVar20" (pointer_expression "*(byte *)ppuVar25" * (cast_expression "(byte *)ppuVar25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier)) ;) (expression_statement "bVar32 = *(byte *)ppuVar25 == bVar20;" (assignment_expression "bVar32 = *(byte *)ppuVar25 == bVar20" identifier = (binary_expression "*(byte *)ppuVar25 == bVar20" (pointer_expression "*(byte *)ppuVar25" * (cast_expression "(byte *)ppuVar25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier)) ;) (expression_statement "ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);" (assignment_expression "ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar25 + (uint)bVar33 * -2 + 1)" ( (binary_expression "(int)ppuVar25 + (uint)bVar33 * -2 + 1" (binary_expression "(int)ppuVar25 + (uint)bVar33 * -2" (cast_expression "(int)ppuVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);" (assignment_expression "pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar24 + (uint)bVar33 * -2 + 1)" ( (binary_expression "(int)pRVar24 + (uint)bVar33 * -2 + 1" (binary_expression "(int)pRVar24 + (uint)bVar33 * -2" (cast_expression "(int)pRVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar32)" ( identifier )) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar30 && !bVar32) == bVar30;" (assignment_expression "bVar30 = (!bVar30 && !bVar32) == bVar30" identifier = (binary_expression "(!bVar30 && !bVar32) == bVar30" (parenthesized_expression "(!bVar30 && !bVar32)" ( (binary_expression "!bVar30 && !bVar32" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar32" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n      p_Var16 = (_Rb_tree_header *)0xf;\n      pbVar26 = (byte *)((int)local_a4 + -0x19ca46);\n      pRVar24 = src_id.first;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n        bVar31 = *pbVar26 < bVar20;\n        bVar30 = *pbVar26 == bVar20;\n        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar31 && !bVar30) != bVar31) {\n        if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n      p_Var16 = (_Rb_tree_header *)0xf;\n      pbVar26 = (byte *)((int)local_a4 + -0x19ca46);\n      pRVar24 = src_id.first;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n        bVar31 = *pbVar26 < bVar20;\n        bVar30 = *pbVar26 == bVar20;\n        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n      } while (bVar30);\n      if ((!bVar31 && !bVar30) != bVar31) {\n        if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }" { (expression_statement "p_Var16 = (_Rb_tree_header *)0xf;" (assignment_expression "p_Var16 = (_Rb_tree_header *)0xf" identifier = (cast_expression "(_Rb_tree_header *)0xf" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar26 = (byte *)((int)local_a4 + -0x19ca46);" (assignment_expression "pbVar26 = (byte *)((int)local_a4 + -0x19ca46)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca46)" ( (type_descriptor "byte *" 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 "pRVar24 = src_id.first;" (assignment_expression "pRVar24 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n        bVar31 = *pbVar26 < bVar20;\n        bVar30 = *pbVar26 == bVar20;\n        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n      } while (bVar30);" do (compound_statement "{\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;\n        bVar31 = *pbVar26 < bVar20;\n        bVar30 = *pbVar26 == bVar20;\n        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);\n      }" { (if_statement "if (p_Var16 == (_Rb_tree_header *)0x0) break;" if (parenthesized_expression "(p_Var16 == (_Rb_tree_header *)0x0)" ( (binary_expression "p_Var16 == (_Rb_tree_header *)0x0" identifier == (cast_expression "(_Rb_tree_header *)0x0" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);" (assignment_expression "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" identifier = (cast_expression "(_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var16 + -1) + 0x13)" ( (binary_expression "(int)(p_Var16 + -1) + 0x13" (cast_expression "(int)(p_Var16 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var16 + -1)" ( (binary_expression "p_Var16 + -1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;" (assignment_expression "bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar24->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar24->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar24->super_Object)._vptr_Object" & (field_expression "(pRVar24->super_Object)._vptr_Object" (parenthesized_expression "(pRVar24->super_Object)" ( (field_expression "pRVar24->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar31 = *pbVar26 < bVar20;" (assignment_expression "bVar31 = *pbVar26 < bVar20" identifier = (binary_expression "*pbVar26 < bVar20" (pointer_expression "*pbVar26" * identifier) < identifier)) ;) (expression_statement "bVar30 = *pbVar26 == bVar20;" (assignment_expression "bVar30 = *pbVar26 == bVar20" identifier = (binary_expression "*pbVar26 == bVar20" (pointer_expression "*pbVar26" * identifier) == identifier)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);" (assignment_expression "pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar24 + (uint)bVar33 * -2 + 1)" ( (binary_expression "(int)pRVar24 + (uint)bVar33 * -2 + 1" (binary_expression "(int)pRVar24 + (uint)bVar33 * -2" (cast_expression "(int)pRVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (if_statement "if ((!bVar31 && !bVar30) != bVar31) {\n        if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }" if (parenthesized_expression "((!bVar31 && !bVar30) != bVar31)" ( (binary_expression "(!bVar31 && !bVar30) != bVar31" (parenthesized_expression "(!bVar31 && !bVar30)" ( (binary_expression "!bVar31 && !bVar30" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }" { (if_statement "if (src_id.first == local_a8) {\n          pPVar11 = *local_c4;\n        }\n        else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\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          pPVar11 = *local_c4;\n        }" { (expression_statement "pPVar11 = *local_c4;" (assignment_expression "pPVar11 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) }) (else_clause "else {\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }" else (compound_statement "{\n          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;\n          operator_delete(*(void **)((int)puVar23 + -0x10));\n          pPVar11 = *local_c4;\n          p_Var16 = extraout_ECX_10;\n        }" { (expression_statement "*(Relobj **)((int)puVar23 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)puVar23 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)puVar23 + -0x10)" * (cast_expression "(Relobj **)((int)puVar23 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e733" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar23 + -0x10));" (call_expression "operator_delete(*(void **)((int)puVar23 + -0x10))" identifier (argument_list "(*(void **)((int)puVar23 + -0x10))" ( (pointer_expression "*(void **)((int)puVar23 + -0x10)" * (cast_expression "(void **)((int)puVar23 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pPVar11 = *local_c4;" (assignment_expression "pPVar11 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (expression_statement "p_Var16 = extraout_ECX_10;" (assignment_expression "p_Var16 = extraout_ECX_10" identifier = identifier) ;) }))) (goto_statement "goto LAB_0008d94f;" goto statement_identifier ;) })) })) (if_statement "if (src_id.first != local_a8) {\n      *(Relobj **)((int)puVar23 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;\n      operator_delete(*(void **)((int)puVar23 + -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)puVar23 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;\n      operator_delete(*(void **)((int)puVar23 + -0x10));\n    }" { (expression_statement "*(Relobj **)((int)puVar23 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)puVar23 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)puVar23 + -0x10)" * (cast_expression "(Relobj **)((int)puVar23 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar23 + -0x10));" (call_expression "operator_delete(*(void **)((int)puVar23 + -0x10))" identifier (argument_list "(*(void **)((int)puVar23 + -0x10))" ( (pointer_expression "*(void **)((int)puVar23 + -0x10)" * (cast_expression "(void **)((int)puVar23 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(Icf **)((int)puVar23 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)puVar23 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)puVar23 + -0xc)" * (cast_expression "(Icf **)((int)puVar23 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10) = &symtab->icf_->reloc_info_list_;" (assignment_expression "*(Reloc_info_list **)((int)puVar23 + -0x10) = &symtab->icf_->reloc_info_list_" (pointer_expression "*(Reloc_info_list **)((int)puVar23 + -0x10)" * (cast_expression "(Reloc_info_list **)((int)puVar23 + -0x10)" ( (type_descriptor "Reloc_info_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e6d4;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e6d4" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_c8 = 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_c8 = 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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -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)puVar23 + -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)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(key_type **)((int)puVar23 + -0xc)" * (cast_expression "(key_type **)((int)puVar23 + -0xc)" ( (type_descriptor "key_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))))) ;))))) (expression_statement "p_Var16 = (_Rb_tree_header *)&local_c8->offset_info;" (assignment_expression "p_Var16 = (_Rb_tree_header *)&local_c8->offset_info" identifier = (cast_expression "(_Rb_tree_header *)&local_c8->offset_info" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_c8->offset_info" & (field_expression "local_c8->offset_info" identifier -> field_identifier)))) ;) (expression_statement "local_d0 = &local_c8->symbol_info;" (assignment_expression "local_d0 = &local_c8->symbol_info" identifier = (pointer_expression "&local_c8->symbol_info" & (field_expression "local_c8->symbol_info" identifier -> field_identifier))) ;) (expression_statement "local_ec = &local_c8->reloc_addend_size_info;" (assignment_expression "local_ec = &local_c8->reloc_addend_size_info" identifier = (pointer_expression "&local_c8->reloc_addend_size_info" & (field_expression "local_c8->reloc_addend_size_info" identifier -> field_identifier))) ;) (expression_statement "local_e8 = &local_c8->addend_info;" (assignment_expression "local_e8 = &local_c8->addend_info" identifier = (pointer_expression "&local_c8->addend_info" & (field_expression "local_c8->addend_info" identifier -> field_identifier))) ;) (expression_statement "local_d4 = (Offset_info *)p_Var16;" (assignment_expression "local_d4 = (Offset_info *)p_Var16" identifier = (cast_expression "(Offset_info *)p_Var16" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPVar11 = *local_c4;" (assignment_expression "pPVar11 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (expression_statement "local_be = '\x01';" (assignment_expression "local_be = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (if_statement "if (pPVar11->options_ == (General_options *)0x0) {\n    *(undefined4 *)((int)puVar23 + -4) = 0;\n    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e873;\n    gold::do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));\n  }" if (parenthesized_expression "(pPVar11->options_ == (General_options *)0x0)" ( (binary_expression "pPVar11->options_ == (General_options *)0x0" (field_expression "pPVar11->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined4 *)((int)puVar23 + -4) = 0;\n    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e873;\n    gold::do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));\n  }" { (expression_statement "*(undefined4 *)((int)puVar23 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar23 + -4) = 0" (pointer_expression "*(undefined4 *)((int)puVar23 + -4)" * (cast_expression "(undefined4 *)((int)puVar23 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -4)" ( (binary_expression "(int)puVar23 + -4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)puVar23 + -8)" * (cast_expression "(undefined ***)((int)puVar23 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)puVar23 + -0x10)" * (cast_expression "(int *)((int)puVar23 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e873;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e873" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n               *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_bf = false;" (assignment_expression "local_bf = false" identifier = false) ;) (if_statement "if (pPVar11->options_->icf_status_ == ICF_SAFE) {\n    *(Target_x86_64<64> **)((int)puVar23 + -0x10) = this;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e56b;\n    local_bf = do_can_check_for_function_pointers(*(Target_x86_64<64> **)((int)puVar23 + -0x10));\n    bVar30 = false;\n    bVar32 = !local_bf;\n    p_Var16 = extraout_ECX_09;\n    if (!bVar32) {\n      p_Var16 = (_Rb_tree_header *)0xc;\n      local_bf = false;\n      ppuVar25 = local_a4 + -0x66894;\n      _Var29 = src_section_name._M_dataplus;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;\n        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n      } while (bVar32);\n      bVar31 = false;\n      bVar30 = (!bVar30 && !bVar32) == bVar30;\n      if (!bVar30) {\n        p_Var16 = (_Rb_tree_header *)0x11;\n        pbVar26 = (byte *)((int)local_a4 + -0x19a243);\n        _Var29 = src_section_name._M_dataplus;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        } while (bVar30);\n        bVar32 = false;\n        bVar30 = (!bVar31 && !bVar30) == bVar31;\n        if (!bVar30) {\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(pPVar11->options_->icf_status_ == ICF_SAFE)" ( (binary_expression "pPVar11->options_->icf_status_ == ICF_SAFE" (field_expression "pPVar11->options_->icf_status_" (field_expression "pPVar11->options_" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n    *(Target_x86_64<64> **)((int)puVar23 + -0x10) = this;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e56b;\n    local_bf = do_can_check_for_function_pointers(*(Target_x86_64<64> **)((int)puVar23 + -0x10));\n    bVar30 = false;\n    bVar32 = !local_bf;\n    p_Var16 = extraout_ECX_09;\n    if (!bVar32) {\n      p_Var16 = (_Rb_tree_header *)0xc;\n      local_bf = false;\n      ppuVar25 = local_a4 + -0x66894;\n      _Var29 = src_section_name._M_dataplus;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;\n        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n      } while (bVar32);\n      bVar31 = false;\n      bVar30 = (!bVar30 && !bVar32) == bVar30;\n      if (!bVar30) {\n        p_Var16 = (_Rb_tree_header *)0x11;\n        pbVar26 = (byte *)((int)local_a4 + -0x19a243);\n        _Var29 = src_section_name._M_dataplus;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        } while (bVar30);\n        bVar32 = false;\n        bVar30 = (!bVar31 && !bVar30) == bVar31;\n        if (!bVar30) {\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(Target_x86_64<64> **)((int)puVar23 + -0x10) = this;" (assignment_expression "*(Target_x86_64<64> **)((int)puVar23 + -0x10) = this" (pointer_expression "*(Target_x86_64<64> **)((int)puVar23 + -0x10)" * (call_expression "(Target_x86_64<64> **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e56b;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e56b" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_bf = do_can_check_for_function_pointers(*(Target_x86_64<64> **)((int)puVar23 + -0x10));" (assignment_expression "local_bf = do_can_check_for_function_pointers(*(Target_x86_64<64> **)((int)puVar23 + -0x10))" identifier = (call_expression "do_can_check_for_function_pointers(*(Target_x86_64<64> **)((int)puVar23 + -0x10))" identifier (argument_list "(*(Target_x86_64<64> **)((int)puVar23 + -0x10))" ( (pointer_expression "*(Target_x86_64<64> **)((int)puVar23 + -0x10)" * (call_expression "(Target_x86_64<64> **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (expression_statement "bVar32 = !local_bf;" (assignment_expression "bVar32 = !local_bf" identifier = (unary_expression "!local_bf" ! identifier)) ;) (expression_statement "p_Var16 = extraout_ECX_09;" (assignment_expression "p_Var16 = extraout_ECX_09" identifier = identifier) ;) (if_statement "if (!bVar32) {\n      p_Var16 = (_Rb_tree_header *)0xc;\n      local_bf = false;\n      ppuVar25 = local_a4 + -0x66894;\n      _Var29 = src_section_name._M_dataplus;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;\n        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n      } while (bVar32);\n      bVar31 = false;\n      bVar30 = (!bVar30 && !bVar32) == bVar30;\n      if (!bVar30) {\n        p_Var16 = (_Rb_tree_header *)0x11;\n        pbVar26 = (byte *)((int)local_a4 + -0x19a243);\n        _Var29 = src_section_name._M_dataplus;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        } while (bVar30);\n        bVar32 = false;\n        bVar30 = (!bVar31 && !bVar30) == bVar31;\n        if (!bVar30) {\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar32)" ( (unary_expression "!bVar32" ! identifier) )) (compound_statement "{\n      p_Var16 = (_Rb_tree_header *)0xc;\n      local_bf = false;\n      ppuVar25 = local_a4 + -0x66894;\n      _Var29 = src_section_name._M_dataplus;\n      do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;\n        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n      } while (bVar32);\n      bVar31 = false;\n      bVar30 = (!bVar30 && !bVar32) == bVar30;\n      if (!bVar30) {\n        p_Var16 = (_Rb_tree_header *)0x11;\n        pbVar26 = (byte *)((int)local_a4 + -0x19a243);\n        _Var29 = src_section_name._M_dataplus;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        } while (bVar30);\n        bVar32 = false;\n        bVar30 = (!bVar31 && !bVar30) == bVar31;\n        if (!bVar30) {\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "p_Var16 = (_Rb_tree_header *)0xc;" (assignment_expression "p_Var16 = (_Rb_tree_header *)0xc" identifier = (cast_expression "(_Rb_tree_header *)0xc" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_bf = false;" (assignment_expression "local_bf = false" identifier = false) ;) (expression_statement "ppuVar25 = local_a4 + -0x66894;" (assignment_expression "ppuVar25 = local_a4 + -0x66894" identifier = (binary_expression "local_a4 + -0x66894" identifier + number_literal)) ;) (expression_statement "_Var29 = src_section_name._M_dataplus;" (assignment_expression "_Var29 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;\n        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n      } while (bVar32);" do (compound_statement "{\n        if (p_Var16 == (_Rb_tree_header *)0x0) break;\n        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;\n        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n      }" { (if_statement "if (p_Var16 == (_Rb_tree_header *)0x0) break;" if (parenthesized_expression "(p_Var16 == (_Rb_tree_header *)0x0)" ( (binary_expression "p_Var16 == (_Rb_tree_header *)0x0" identifier == (cast_expression "(_Rb_tree_header *)0x0" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);" (assignment_expression "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" identifier = (cast_expression "(_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var16 + -1) + 0x13)" ( (binary_expression "(int)(p_Var16 + -1) + 0x13" (cast_expression "(int)(p_Var16 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var16 + -1)" ( (binary_expression "p_Var16 + -1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;" (assignment_expression "bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p" identifier = (binary_expression "*(byte *)ppuVar25 < (byte)*_Var29._M_p" (pointer_expression "*(byte *)ppuVar25" * (cast_expression "(byte *)ppuVar25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*_Var29._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;" (assignment_expression "bVar32 = *(byte *)ppuVar25 == *_Var29._M_p" identifier = (binary_expression "*(byte *)ppuVar25 == *_Var29._M_p" (pointer_expression "*(byte *)ppuVar25" * (cast_expression "(byte *)ppuVar25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*_Var29._M_p" * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);" (assignment_expression "ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar25 + (uint)bVar33 * -2 + 1)" ( (binary_expression "(int)ppuVar25 + (uint)bVar33 * -2 + 1" (binary_expression "(int)ppuVar25 + (uint)bVar33 * -2" (cast_expression "(int)ppuVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);" (assignment_expression "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (field_expression "_Var29._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" ( (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2 + 1" (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2" (cast_expression "(byte *)_Var29._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var29._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar32)" ( identifier )) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar30 && !bVar32) == bVar30;" (assignment_expression "bVar30 = (!bVar30 && !bVar32) == bVar30" identifier = (binary_expression "(!bVar30 && !bVar32) == bVar30" (parenthesized_expression "(!bVar30 && !bVar32)" ( (binary_expression "!bVar30 && !bVar32" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar32" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n        p_Var16 = (_Rb_tree_header *)0x11;\n        pbVar26 = (byte *)((int)local_a4 + -0x19a243);\n        _Var29 = src_section_name._M_dataplus;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        } while (bVar30);\n        bVar32 = false;\n        bVar30 = (!bVar31 && !bVar30) == bVar31;\n        if (!bVar30) {\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n        p_Var16 = (_Rb_tree_header *)0x11;\n        pbVar26 = (byte *)((int)local_a4 + -0x19a243);\n        _Var29 = src_section_name._M_dataplus;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        } while (bVar30);\n        bVar32 = false;\n        bVar30 = (!bVar31 && !bVar30) == bVar31;\n        if (!bVar30) {\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }\n      }" { (expression_statement "p_Var16 = (_Rb_tree_header *)0x11;" (assignment_expression "p_Var16 = (_Rb_tree_header *)0x11" identifier = (cast_expression "(_Rb_tree_header *)0x11" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar26 = (byte *)((int)local_a4 + -0x19a243);" (assignment_expression "pbVar26 = (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 "_Var29 = src_section_name._M_dataplus;" (assignment_expression "_Var29 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        } while (bVar30);" do (compound_statement "{\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar31 = *pbVar26 < (byte)*_Var29._M_p;\n          bVar30 = *pbVar26 == *_Var29._M_p;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n        }" { (if_statement "if (p_Var16 == (_Rb_tree_header *)0x0) break;" if (parenthesized_expression "(p_Var16 == (_Rb_tree_header *)0x0)" ( (binary_expression "p_Var16 == (_Rb_tree_header *)0x0" identifier == (cast_expression "(_Rb_tree_header *)0x0" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);" (assignment_expression "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" identifier = (cast_expression "(_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var16 + -1) + 0x13)" ( (binary_expression "(int)(p_Var16 + -1) + 0x13" (cast_expression "(int)(p_Var16 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var16 + -1)" ( (binary_expression "p_Var16 + -1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "bVar31 = *pbVar26 < (byte)*_Var29._M_p;" (assignment_expression "bVar31 = *pbVar26 < (byte)*_Var29._M_p" identifier = (binary_expression "*pbVar26 < (byte)*_Var29._M_p" (pointer_expression "*pbVar26" * identifier) < (binary_expression "(byte)*_Var29._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar30 = *pbVar26 == *_Var29._M_p;" (assignment_expression "bVar30 = *pbVar26 == *_Var29._M_p" identifier = (binary_expression "*pbVar26 == *_Var29._M_p" (pointer_expression "*pbVar26" * identifier) == (pointer_expression "*_Var29._M_p" * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);" (assignment_expression "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (field_expression "_Var29._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" ( (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2 + 1" (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2" (cast_expression "(byte *)_Var29._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var29._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar31 && !bVar30) == bVar31;" (assignment_expression "bVar30 = (!bVar31 && !bVar30) == bVar31" identifier = (binary_expression "(!bVar31 && !bVar30) == bVar31" (parenthesized_expression "(!bVar31 && !bVar30)" ( (binary_expression "!bVar31 && !bVar30" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n          p_Var16 = (_Rb_tree_header *)0xc;\n          pbVar26 = (byte *)((int)local_a4 + -0x19a231);\n          _Var29 = src_section_name._M_dataplus;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          bVar31 = false;\n          bVar30 = (!bVar32 && !bVar30) == bVar32;\n          if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }\n        }" { (expression_statement "p_Var16 = (_Rb_tree_header *)0xc;" (assignment_expression "p_Var16 = (_Rb_tree_header *)0xc" identifier = (cast_expression "(_Rb_tree_header *)0xc" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar26 = (byte *)((int)local_a4 + -0x19a231);" (assignment_expression "pbVar26 = (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 "_Var29 = src_section_name._M_dataplus;" (assignment_expression "_Var29 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          } while (bVar30);" do (compound_statement "{\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n            bVar30 = *pbVar26 == *_Var29._M_p;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n          }" { (if_statement "if (p_Var16 == (_Rb_tree_header *)0x0) break;" if (parenthesized_expression "(p_Var16 == (_Rb_tree_header *)0x0)" ( (binary_expression "p_Var16 == (_Rb_tree_header *)0x0" identifier == (cast_expression "(_Rb_tree_header *)0x0" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);" (assignment_expression "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" identifier = (cast_expression "(_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var16 + -1) + 0x13)" ( (binary_expression "(int)(p_Var16 + -1) + 0x13" (cast_expression "(int)(p_Var16 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var16 + -1)" ( (binary_expression "p_Var16 + -1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "bVar32 = *pbVar26 < (byte)*_Var29._M_p;" (assignment_expression "bVar32 = *pbVar26 < (byte)*_Var29._M_p" identifier = (binary_expression "*pbVar26 < (byte)*_Var29._M_p" (pointer_expression "*pbVar26" * identifier) < (binary_expression "(byte)*_Var29._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar30 = *pbVar26 == *_Var29._M_p;" (assignment_expression "bVar30 = *pbVar26 == *_Var29._M_p" identifier = (binary_expression "*pbVar26 == *_Var29._M_p" (pointer_expression "*pbVar26" * identifier) == (pointer_expression "*_Var29._M_p" * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);" (assignment_expression "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (field_expression "_Var29._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" ( (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2 + 1" (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2" (cast_expression "(byte *)_Var29._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var29._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar32 && !bVar30) == bVar32;" (assignment_expression "bVar30 = (!bVar32 && !bVar30) == bVar32" identifier = (binary_expression "(!bVar32 && !bVar30) == bVar32" (parenthesized_expression "(!bVar32 && !bVar30)" ( (binary_expression "!bVar32 && !bVar30" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n            p_Var16 = (_Rb_tree_header *)0x11;\n            ppuVar25 = local_a4 + -0x66889;\n            _Var29 = src_section_name._M_dataplus;\n            do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);\n            bVar32 = false;\n            bVar30 = (!bVar31 && !bVar30) == bVar31;\n            if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }\n          }" { (expression_statement "p_Var16 = (_Rb_tree_header *)0x11;" (assignment_expression "p_Var16 = (_Rb_tree_header *)0x11" identifier = (cast_expression "(_Rb_tree_header *)0x11" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar25 = local_a4 + -0x66889;" (assignment_expression "ppuVar25 = local_a4 + -0x66889" identifier = (binary_expression "local_a4 + -0x66889" identifier + number_literal)) ;) (expression_statement "_Var29 = src_section_name._M_dataplus;" (assignment_expression "_Var29 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            } while (bVar30);" do (compound_statement "{\n              if (p_Var16 == (_Rb_tree_header *)0x0) break;\n              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;\n              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;\n              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);\n              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n            }" { (if_statement "if (p_Var16 == (_Rb_tree_header *)0x0) break;" if (parenthesized_expression "(p_Var16 == (_Rb_tree_header *)0x0)" ( (binary_expression "p_Var16 == (_Rb_tree_header *)0x0" identifier == (cast_expression "(_Rb_tree_header *)0x0" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);" (assignment_expression "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" identifier = (cast_expression "(_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var16 + -1) + 0x13)" ( (binary_expression "(int)(p_Var16 + -1) + 0x13" (cast_expression "(int)(p_Var16 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var16 + -1)" ( (binary_expression "p_Var16 + -1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;" (assignment_expression "bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p" identifier = (binary_expression "*(byte *)ppuVar25 < (byte)*_Var29._M_p" (pointer_expression "*(byte *)ppuVar25" * (cast_expression "(byte *)ppuVar25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*_Var29._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;" (assignment_expression "bVar30 = *(byte *)ppuVar25 == *_Var29._M_p" identifier = (binary_expression "*(byte *)ppuVar25 == *_Var29._M_p" (pointer_expression "*(byte *)ppuVar25" * (cast_expression "(byte *)ppuVar25" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*_Var29._M_p" * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);" (assignment_expression "ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar25 + (uint)bVar33 * -2 + 1)" ( (binary_expression "(int)ppuVar25 + (uint)bVar33 * -2 + 1" (binary_expression "(int)ppuVar25 + (uint)bVar33 * -2" (cast_expression "(int)ppuVar25" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);" (assignment_expression "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (field_expression "_Var29._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" ( (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2 + 1" (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2" (cast_expression "(byte *)_Var29._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var29._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar31 && !bVar30) == bVar31;" (assignment_expression "bVar30 = (!bVar31 && !bVar30) == bVar31" identifier = (binary_expression "(!bVar31 && !bVar30) == bVar31" (parenthesized_expression "(!bVar31 && !bVar30)" ( (binary_expression "!bVar31 && !bVar30" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar30) {\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n              p_Var16 = (_Rb_tree_header *)0x9;\n              pbVar26 = (byte *)((int)local_a4 + -0x19a212);\n              _Var29 = src_section_name._M_dataplus;\n              do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);\n              local_bf = (!bVar32 && !bVar30) != bVar32;\n            }" { (expression_statement "p_Var16 = (_Rb_tree_header *)0x9;" (assignment_expression "p_Var16 = (_Rb_tree_header *)0x9" identifier = (cast_expression "(_Rb_tree_header *)0x9" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar26 = (byte *)((int)local_a4 + -0x19a212);" (assignment_expression "pbVar26 = (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 "_Var29 = src_section_name._M_dataplus;" (assignment_expression "_Var29 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              } while (bVar30);" do (compound_statement "{\n                if (p_Var16 == (_Rb_tree_header *)0x0) break;\n                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n                bVar32 = *pbVar26 < (byte)*_Var29._M_p;\n                bVar30 = *pbVar26 == *_Var29._M_p;\n                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);\n              }" { (if_statement "if (p_Var16 == (_Rb_tree_header *)0x0) break;" if (parenthesized_expression "(p_Var16 == (_Rb_tree_header *)0x0)" ( (binary_expression "p_Var16 == (_Rb_tree_header *)0x0" identifier == (cast_expression "(_Rb_tree_header *)0x0" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);" (assignment_expression "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" identifier = (cast_expression "(_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var16 + -1) + 0x13)" ( (binary_expression "(int)(p_Var16 + -1) + 0x13" (cast_expression "(int)(p_Var16 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var16 + -1)" ( (binary_expression "p_Var16 + -1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "bVar32 = *pbVar26 < (byte)*_Var29._M_p;" (assignment_expression "bVar32 = *pbVar26 < (byte)*_Var29._M_p" identifier = (binary_expression "*pbVar26 < (byte)*_Var29._M_p" (pointer_expression "*pbVar26" * identifier) < (binary_expression "(byte)*_Var29._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar30 = *pbVar26 == *_Var29._M_p;" (assignment_expression "bVar30 = *pbVar26 == *_Var29._M_p" identifier = (binary_expression "*pbVar26 == *_Var29._M_p" (pointer_expression "*pbVar26" * identifier) == (pointer_expression "*_Var29._M_p" * (field_expression "_Var29._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);" (assignment_expression "_Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (field_expression "_Var29._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1)" ( (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2 + 1" (binary_expression "(byte *)_Var29._M_p + (uint)bVar33 * -2" (cast_expression "(byte *)_Var29._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var29._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "local_bf = (!bVar32 && !bVar30) != bVar32;" (assignment_expression "local_bf = (!bVar32 && !bVar30) != bVar32" identifier = (binary_expression "(!bVar32 && !bVar30) != bVar32" (parenthesized_expression "(!bVar32 && !bVar30)" ( (binary_expression "!bVar32 && !bVar30" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) != identifier)) ;) })) })) })) })) })) })) if (parenthesized_expression "(reloc_count != 0)" ( (binary_expression "reloc_count != 0" identifier != number_literal) )) { (expression_statement "local_cc = (_func_int_varargs **)0x0;" (assignment_expression "local_cc = (_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_d8 = local_94;" (assignment_expression "local_d8 = local_94" identifier = identifier) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (expression_statement "local_f4 = &__node_gen;" (assignment_expression "local_f4 = &__node_gen" identifier = (pointer_expression "&__node_gen" & identifier)) ;) do { (expression_statement "local_f0 = *(_Rb_tree_header **)(prelocs + 8);" (assignment_expression "local_f0 = *(_Rb_tree_header **)(prelocs + 8)" identifier = (pointer_expression "*(_Rb_tree_header **)(prelocs + 8)" * (cast_expression "(_Rb_tree_header **)(prelocs + 8)" ( (type_descriptor "_Rb_tree_header **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(prelocs + 8)" ( (binary_expression "prelocs + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = *(uint *)(prelocs + 0xc);" (assignment_expression "uVar21 = *(uint *)(prelocs + 0xc)" identifier = (pointer_expression "*(uint *)(prelocs + 0xc)" * (cast_expression "(uint *)(prelocs + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 0xc)" ( (binary_expression "prelocs + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = *(pointer *)(prelocs + 0x10);" (assignment_expression "local_b4 = *(pointer *)(prelocs + 0x10)" identifier = (pointer_expression "*(pointer *)(prelocs + 0x10)" * (cast_expression "(pointer *)(prelocs + 0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 0x10)" ( (binary_expression "prelocs + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = *(__bucket_type **)(prelocs + 0x14);" (assignment_expression "local_b0 = *(__bucket_type **)(prelocs + 0x14)" identifier = (pointer_expression "*(__bucket_type **)(prelocs + 0x14)" * (cast_expression "(__bucket_type **)(prelocs + 0x14)" ( (type_descriptor "__bucket_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(prelocs + 0x14)" ( (binary_expression "prelocs + 0x14" identifier + number_literal) ))))) ;) if (parenthesized_expression "(uVar21 < param_10)" ( (binary_expression "uVar21 < param_10" identifier < identifier) )) { (if_statement "if (plocal_symbols == (uchar *)0x0) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0xea;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e764;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -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)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0xea;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e764;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }" { (expression_statement "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;" (assignment_expression "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39" (pointer_expression "*(undefined ***)((int)puVar23 + -8)" * (cast_expression "(undefined ***)((int)puVar23 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65e39" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)puVar23 + -0x10)" * (cast_expression "(int *)((int)puVar23 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e764;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e764" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "local_ac = (Output_segment *)(plocal_symbols + uVar21 * 0x18);" (assignment_expression "local_ac = (Output_segment *)(plocal_symbols + uVar21 * 0x18)" identifier = (cast_expression "(Output_segment *)(plocal_symbols + uVar21 * 0x18)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plocal_symbols + uVar21 * 0x18)" ( (binary_expression "plocal_symbols + uVar21 * 0x18" identifier + (binary_expression "uVar21 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "local_a8 = (Relobj *)\n                   (uint)*(ushort *)\n                          ((int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_finish + 2);" (assignment_expression "local_a8 = (Relobj *)\n                   (uint)*(ushort *)\n                          ((int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_finish + 2)" identifier = (binary_expression "(Relobj *)\n                   (uint)*(ushort *)\n                          ((int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_finish + 2)" (cast_expression "(Relobj *)\n                   (uint)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)\n                          ((int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_finish + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_finish + 2)" ( (binary_expression "(int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_finish + 2" (field_expression "(int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl._M_finish" (field_expression "(int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                 ._M_impl" (binary_expression "(int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold::Output_data*,_std" (binary_expression "(int)&local_ac->output_lists_[0].\n                                 super__Vector_base<gold" (cast_expression "(int)&local_ac->output_lists_[0].\n                                 super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->output_lists_[0].\n                                 super__Vector_base" & (field_expression "local_ac->output_lists_[0].\n                                 super__Vector_base" (subscript_expression "local_ac->output_lists_[0]" (field_expression "local_ac->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) ))))) ;) (if_statement "if (local_a8 < (Relobj *)0xff00) {\nLAB_0008db84:\n          pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;\n          ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;\n          local_bc = (int)&local_b4->first + (int)pRVar24;\n          local_b8 = (int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;\n          if (local_be != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dbe0;\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)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n            bVar30 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (Relobj *)0xffff) {\n            pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar14 == (Xindex *)0x0) {\n              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;\n              p_Var7 = pp_Var13[0x1b];\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;\n              pXVar14 = (Xindex *)(*p_Var7)();\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;\n            }\n            *(uint *)((int)puVar23 + -8) = uVar21;\n            *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;\n            *(Xindex **)((int)puVar23 + -0x10) = pXVar14;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));\n            p_Var16 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;\n          ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;\n          local_bc = (int)&local_b4->first + (int)pRVar24;\n          local_b8 = (int)*(__bucket_type **)(prelocs + 0x14) +\n                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;\n          if (local_be == '\0') goto LAB_0008db0d;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8da41;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          bVar30 = false;\nLAB_0008da46:\n          local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish;\n          if ((local_bd & 0xf) == 3) {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          else {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0x0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          src_id.first = pRVar24;\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.second = (uint)ppOVar27;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8daab;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8db02;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_00;\n          if (!bVar30) goto LAB_0008db0d;\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_0008db84:\n          pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;\n          ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;\n          local_bc = (int)&local_b4->first + (int)pRVar24;\n          local_b8 = (int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;\n          if (local_be != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dbe0;\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)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n            bVar30 = true;\n            goto LAB_0008da46;\n          }\n        }" { (labeled_statement "LAB_0008db84:\n          pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;" statement_identifier : (ERROR "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std" (binary_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*" (assignment_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold" identifier = (binary_expression "(Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold" (cast_expression "(Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_ac->output_lists_[0].\n                    super__Vector_base" (subscript_expression "local_ac->output_lists_[0]" (field_expression "local_ac->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier)) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data*>_>.\n                    _M_impl._M_end_of_storage;" (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) ;)) (expression_statement "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;" (field_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start" (field_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl" (binary_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold" identifier = (binary_expression "local_ac->output_lists_[1].\n                     super__Vector_base<gold" (field_expression "local_ac->output_lists_[1].\n                     super__Vector_base" (subscript_expression "local_ac->output_lists_[1]" (field_expression "local_ac->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_bc = (int)&local_b4->first + (int)pRVar24;" (assignment_expression "local_bc = (int)&local_b4->first + (int)pRVar24" identifier = (binary_expression "(int)&local_b4->first + (int)pRVar24" (cast_expression "(int)&local_b4->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_b4->first" & (field_expression "local_b4->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_b8 = (int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;" (assignment_expression "local_b8 = (int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27" identifier = (binary_expression "(int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27" (binary_expression "(int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24)" (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)CARRY4((uint)local_b4,(uint)pRVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_b4,(uint)pRVar24)" identifier (argument_list "((uint)local_b4,(uint)pRVar24)" ( (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)pRVar24" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + (cast_expression "(int)ppOVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_be != '\0') {\n            src_id.first = (Relobj *)object;\n            src_id.second = (uint)local_a8;\n            *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dbe0;\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)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n            bVar30 = true;\n            goto LAB_0008da46;\n          }" if (parenthesized_expression "(local_be != '\0')" ( (binary_expression "local_be != '\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)puVar23 + -0xc) = (Icf *)&src_id;\n            *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n            local_a0 = (Icf *)&src_id;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dbe0;\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)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n            bVar30 = true;\n            goto LAB_0008da46;\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)puVar23 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)puVar23 + -0xc)" * (cast_expression "(Icf **)((int)puVar23 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10) = local_c8;" (assignment_expression "*(mapped_type **)((int)puVar23 + -0x10) = local_c8" (pointer_expression "*(mapped_type **)((int)puVar23 + -0x10)" * (cast_expression "(mapped_type **)((int)puVar23 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8dbe0;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8dbe0" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)puVar23 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)puVar23 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -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)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "bVar30 = true;" (assignment_expression "bVar30 = true" identifier = true) ;) (goto_statement "goto LAB_0008da46;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a8 == (Relobj *)0xffff) {\n            pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar14 == (Xindex *)0x0) {\n              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;\n              p_Var7 = pp_Var13[0x1b];\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;\n              pXVar14 = (Xindex *)(*p_Var7)();\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;\n            }\n            *(uint *)((int)puVar23 + -8) = uVar21;\n            *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;\n            *(Xindex **)((int)puVar23 + -0x10) = pXVar14;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));\n            p_Var16 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;\n          ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;\n          local_bc = (int)&local_b4->first + (int)pRVar24;\n          local_b8 = (int)*(__bucket_type **)(prelocs + 0x14) +\n                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;\n          if (local_be == '\0') goto LAB_0008db0d;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8da41;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          bVar30 = false;\nLAB_0008da46:\n          local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish;\n          if ((local_bd & 0xf) == 3) {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          else {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0x0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          src_id.first = pRVar24;\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.second = (uint)ppOVar27;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8daab;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8db02;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_00;\n          if (!bVar30) goto LAB_0008db0d;\n        }" else (compound_statement "{\n          if (local_a8 == (Relobj *)0xffff) {\n            pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar14 == (Xindex *)0x0) {\n              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;\n              p_Var7 = pp_Var13[0x1b];\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;\n              pXVar14 = (Xindex *)(*p_Var7)();\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;\n            }\n            *(uint *)((int)puVar23 + -8) = uVar21;\n            *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;\n            *(Xindex **)((int)puVar23 + -0x10) = pXVar14;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));\n            p_Var16 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;\n          ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;\n          local_bc = (int)&local_b4->first + (int)pRVar24;\n          local_b8 = (int)*(__bucket_type **)(prelocs + 0x14) +\n                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;\n          if (local_be == '\0') goto LAB_0008db0d;\n          src_id.first = (Relobj *)0x0;\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          src_id.second = 0;\n          local_a0 = (Icf *)&src_id;\n                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8da41;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          bVar30 = false;\nLAB_0008da46:\n          local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish;\n          if ((local_bd & 0xf) == 3) {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          else {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0x0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          src_id.first = pRVar24;\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.second = (uint)ppOVar27;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8daab;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8db02;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_00;\n          if (!bVar30) goto LAB_0008db0d;\n        }" { (if_statement "if (local_a8 == (Relobj *)0xffff) {\n            pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar14 == (Xindex *)0x0) {\n              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;\n              p_Var7 = pp_Var13[0x1b];\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;\n              pXVar14 = (Xindex *)(*p_Var7)();\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;\n            }\n            *(uint *)((int)puVar23 + -8) = uVar21;\n            *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;\n            *(Xindex **)((int)puVar23 + -0x10) = pXVar14;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));\n            p_Var16 = extraout_ECX_02;\n            goto LAB_0008db84;\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            pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n            if (pXVar14 == (Xindex *)0x0) {\n              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;\n              p_Var7 = pp_Var13[0x1b];\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;\n              pXVar14 = (Xindex *)(*p_Var7)();\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;\n            }\n            *(uint *)((int)puVar23 + -8) = uVar21;\n            *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;\n            *(Xindex **)((int)puVar23 + -0x10) = pXVar14;\n                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;\n            local_a8 = (Relobj *)\n                       gold::Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));\n            p_Var16 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }" { (expression_statement "pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;" (assignment_expression "pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" identifier = (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pXVar14 == (Xindex *)0x0) {\n              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;\n              p_Var7 = pp_Var13[0x1b];\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;\n              pXVar14 = (Xindex *)(*p_Var7)();\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;\n            }" if (parenthesized_expression "(pXVar14 == (Xindex *)0x0)" ( (binary_expression "pXVar14 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;\n              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;\n              p_Var7 = pp_Var13[0x1b];\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;\n              pXVar14 = (Xindex *)(*p_Var7)();\n              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;\n            }" { (expression_statement "pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object;" (assignment_expression "pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object" identifier = (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.\n                         _vptr_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;" (assignment_expression "*(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object" (pointer_expression "*(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10)" * (call_expression "(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10)" (parenthesized_expression "(Sized_relobj_file<64,_false> **)" ( (comma_expression "Sized_relobj_file<64,_false> **" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "p_Var7 = pp_Var13[0x1b];" (assignment_expression "p_Var7 = pp_Var13[0x1b]" identifier = (subscript_expression "pp_Var13[0x1b]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pXVar14 = (Xindex *)(*p_Var7)();" (assignment_expression "pXVar14 = (Xindex *)(*p_Var7)()" identifier = (cast_expression "(Xindex *)(*p_Var7)()" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var7)()" (parenthesized_expression "(*p_Var7)" ( (pointer_expression "*p_Var7" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;" (assignment_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_false>)" ( (comma_expression "object->super_Sized_relobj<64,_false" (binary_expression "object->super_Sized_relobj<64" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) })) (expression_statement "*(uint *)((int)puVar23 + -8) = uVar21;" (assignment_expression "*(uint *)((int)puVar23 + -8) = uVar21" (pointer_expression "*(uint *)((int)puVar23 + -8)" * (cast_expression "(uint *)((int)puVar23 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;" (assignment_expression "*(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object" (pointer_expression "*(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc)" * (call_expression "(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc)" (parenthesized_expression "(Sized_relobj_file<64,_false> **)" ( (comma_expression "Sized_relobj_file<64,_false> **" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Xindex **)((int)puVar23 + -0x10) = pXVar14;" (assignment_expression "*(Xindex **)((int)puVar23 + -0x10) = pXVar14" (pointer_expression "*(Xindex **)((int)puVar23 + -0x10)" * (cast_expression "(Xindex **)((int)puVar23 + -0x10)" ( (type_descriptor "Xindex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));" (call_expression "sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8))" identifier (argument_list "(*(Xindex **)((int)puVar23 + -0x10),\n                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8))" ( (pointer_expression "*(Xindex **)((int)puVar23 + -0x10)" * (cast_expression "(Xindex **)((int)puVar23 + -0x10)" ( (type_descriptor "Xindex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Object **)((int)puVar23 + -0xc)" * (cast_expression "(Object **)((int)puVar23 + -0xc)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar23 + -8)" * (cast_expression "(uint *)((int)puVar23 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "p_Var16 = extraout_ECX_02;" (assignment_expression "p_Var16 = extraout_ECX_02" identifier = identifier) ;) (goto_statement "goto LAB_0008db84;" goto statement_identifier ;) })) (expression_statement "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage;" (field_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_end_of_storage" (field_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl" (binary_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std" (assignment_expression "pRVar24 = (Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold" identifier = (binary_expression "(Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base<gold" (cast_expression "(Relobj *)\n                    local_ac->output_lists_[0].\n                    super__Vector_base" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_ac->output_lists_[0].\n                    super__Vector_base" (subscript_expression "local_ac->output_lists_[0]" (field_expression "local_ac->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start;" (field_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start" (field_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl" (binary_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar27 = local_ac->output_lists_[1].\n                     super__Vector_base<gold" identifier = (binary_expression "local_ac->output_lists_[1].\n                     super__Vector_base<gold" (field_expression "local_ac->output_lists_[1].\n                     super__Vector_base" (subscript_expression "local_ac->output_lists_[1]" (field_expression "local_ac->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_bc = (int)&local_b4->first + (int)pRVar24;" (assignment_expression "local_bc = (int)&local_b4->first + (int)pRVar24" identifier = (binary_expression "(int)&local_b4->first + (int)pRVar24" (cast_expression "(int)&local_b4->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_b4->first" & (field_expression "local_b4->first" identifier -> field_identifier))) + (cast_expression "(int)pRVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_b8 = (int)*(__bucket_type **)(prelocs + 0x14) +\n                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;" (assignment_expression "local_b8 = (int)*(__bucket_type **)(prelocs + 0x14) +\n                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27" identifier = (binary_expression "(int)*(__bucket_type **)(prelocs + 0x14) +\n                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27" (binary_expression "(int)*(__bucket_type **)(prelocs + 0x14) +\n                     (uint)CARRY4((uint)local_b4,(uint)pRVar24)" (cast_expression "(int)*(__bucket_type **)(prelocs + 0x14)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(__bucket_type **)(prelocs + 0x14)" * (cast_expression "(__bucket_type **)(prelocs + 0x14)" ( (type_descriptor "__bucket_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(prelocs + 0x14)" ( (binary_expression "prelocs + 0x14" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)local_b4,(uint)pRVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_b4,(uint)pRVar24)" identifier (argument_list "((uint)local_b4,(uint)pRVar24)" ( (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)pRVar24" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + (cast_expression "(int)ppOVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_be == '\0') goto LAB_0008db0d;" if (parenthesized_expression "(local_be == '\0')" ( (binary_expression "local_be == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008db0d;" 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)puVar23 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)puVar23 + -0xc)" * (cast_expression "(Icf **)((int)puVar23 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10) = local_c8;" (assignment_expression "*(mapped_type **)((int)puVar23 + -0x10) = local_c8" (pointer_expression "*(mapped_type **)((int)puVar23 + -0x10)" * (cast_expression "(mapped_type **)((int)puVar23 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8da41;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8da41" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar23 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -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)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (labeled_statement "LAB_0008da46:\n          local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_finish;" statement_identifier : (ERROR "local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std" (binary_expression "local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold::Output_data*" (assignment_expression "local_bd = *(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold" identifier = (binary_expression "*(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base<gold" (pointer_expression "*(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base" * (cast_expression "(byte *)&local_ac->output_lists_[0].\n                               super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_ac->output_lists_[0].\n                               super__Vector_base" & (field_expression "local_ac->output_lists_[0].\n                               super__Vector_base" (subscript_expression "local_ac->output_lists_[0]" (field_expression "local_ac->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) < identifier)) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data*>_>\n                               ._M_impl._M_finish;" (field_expression "Output_data*>_>\n                               ._M_impl._M_finish" (field_expression "Output_data*>_>\n                               ._M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if ((local_bd & 0xf) == 3) {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }\n          else {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0x0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }" if (parenthesized_expression "((local_bd & 0xf) == 3)" ( (binary_expression "(local_bd & 0xf) == 3" (parenthesized_expression "(local_bd & 0xf)" ( (binary_expression "local_bd & 0xf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }" { (expression_statement "*(Icf **)((int)puVar23 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)puVar23 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)puVar23 + -0xc)" * (cast_expression "(Icf **)((int)puVar23 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_info **)((int)puVar23 + -0x10) = local_d0;" (assignment_expression "*(Symbol_info **)((int)puVar23 + -0x10) = local_d0" (pointer_expression "*(Symbol_info **)((int)puVar23 + -0x10)" * (cast_expression "(Symbol_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e34b;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));" (binary_expression "Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc))" identifier * (ERROR ">" >) (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)puVar23 + -0xc)" * (cast_expression "(Symbol ***)((int)puVar23 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) }) (else_clause "else {\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0x0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }" else (compound_statement "{\n            *(Icf **)((int)puVar23 + -0xc) = local_a0;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            src_id.first = (Relobj *)0x0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));\n          }" { (expression_statement "*(Icf **)((int)puVar23 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)puVar23 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)puVar23 + -0xc)" * (cast_expression "(Icf **)((int)puVar23 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_info **)((int)puVar23 + -0x10) = local_d0;" (assignment_expression "*(Symbol_info **)((int)puVar23 + -0x10) = local_d0" (pointer_expression "*(Symbol_info **)((int)puVar23 + -0x10)" * (cast_expression "(Symbol_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8da7c;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));" (binary_expression "Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc))" identifier * (ERROR ">" >) (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)puVar23 + -0xc)" * (cast_expression "(Symbol ***)((int)puVar23 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) }))) (expression_statement "src_id.first = pRVar24;" (assignment_expression "src_id.first = pRVar24" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;) (expression_statement "*(Icf **)((int)puVar23 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)puVar23 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)puVar23 + -0xc)" * (cast_expression "(Icf **)((int)puVar23 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Addend_info **)((int)puVar23 + -0x10) = local_e8;" (assignment_expression "*(Addend_info **)((int)puVar23 + -0x10) = local_e8" (pointer_expression "*(Addend_info **)((int)puVar23 + -0x10)" * (cast_expression "(Addend_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.second = (uint)ppOVar27;" (assignment_expression "src_id.second = (uint)ppOVar27" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)ppOVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_2c = local_b4;" (assignment_expression "local_2c = local_b4" identifier = identifier) ;) (expression_statement "local_28._M_p = (pointer)local_b0;" (assignment_expression "local_28._M_p = (pointer)local_b0" (field_expression "local_28._M_p" identifier . field_identifier) = (cast_expression "(pointer)local_b0" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8daab;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8daab" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc)" (pointer_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar23 + -0x10)" * (call_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc)" * (call_expression "(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;)) (if_statement "if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }" if (parenthesized_expression "(*(int *)(prelocs + 4) != 0)" ( (binary_expression "*(int *)(prelocs + 4) != 0" (pointer_expression "*(int *)(prelocs + 4)" * (cast_expression "(int *)(prelocs + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;" (assignment_expression "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70" (pointer_expression "*(undefined ***)((int)puVar23 + -8)" * (cast_expression "(undefined ***)((int)puVar23 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;" (assignment_expression "*(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3" (pointer_expression "*(undefined ***)((int)puVar23 + -0x10)" * (cast_expression "(undefined ***)((int)puVar23 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x672d3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (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))) ;) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;" (assignment_expression "puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_d4->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_d4->\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)) ;) (if_statement "if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar1 == (local_d4->\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_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_d4->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_d4->\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)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }" { (expression_statement "*(Icf **)((int)puVar23 + -8) = local_a0;" (assignment_expression "*(Icf **)((int)puVar23 + -8) = local_a0" (pointer_expression "*(Icf **)((int)puVar23 + -8)" * (cast_expression "(Icf **)((int)puVar23 + -8)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)puVar23 + -0xc) = puVar1;" (assignment_expression "*(pointer *)((int)puVar23 + -0xc) = puVar1" (pointer_expression "*(pointer *)((int)puVar23 + -0xc)" * (cast_expression "(pointer *)((int)puVar23 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Offset_info **)((int)puVar23 + -0x10) = local_d4;" (assignment_expression "*(Offset_info **)((int)puVar23 + -0x10) = local_d4" (pointer_expression "*(Offset_info **)((int)puVar23 + -0x10)" * (cast_expression "(Offset_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Offset_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e325" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8))" ( (comma_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8)" (pointer_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar23 + -0x10)" * (call_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8)" (binary_expression "(iterator)*(ulonglong **)((int)puVar23 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(ulonglong **)((int)puVar23 + -0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulonglong **)((int)puVar23 + -8)" * (cast_expression "(ulonglong **)((int)puVar23 + -8)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }" else (compound_statement "{\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }" { (expression_statement "*(Relobj **)puVar1 = *(Relobj **)prelocs;" (assignment_expression "*(Relobj **)puVar1 = *(Relobj **)prelocs" (pointer_expression "*(Relobj **)puVar1" * (cast_expression "(Relobj **)puVar1" ( (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)puVar1 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar1 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar1 + 4)" * (cast_expression "(undefined4 *)((int)puVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar1 + 4)" ( (binary_expression "(int)puVar1 + 4" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;" (assignment_expression "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1" (field_expression "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_d4->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_d4->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_d4->\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 "puVar1 + 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)puVar23 + -0xc) = &dst_id;" (assignment_expression "*(Section_id **)((int)puVar23 + -0xc) = &dst_id" (pointer_expression "*(Section_id **)((int)puVar23 + -0xc)" * (cast_expression "(Section_id **)((int)puVar23 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&dst_id" & identifier)) ;) (expression_statement "*(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;" (assignment_expression "*(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec" (pointer_expression "*(Reloc_addend_size_info **)((int)puVar23 + -0x10)" * (cast_expression "(Reloc_addend_size_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Reloc_addend_size_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8db02;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8db02" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -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>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));" (binary_expression "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc))" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc)" (pointer_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)" * (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)puVar23 + -0xc)" * (cast_expression "(uint **)((int)puVar23 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (expression_statement "p_Var16 = extraout_ECX_00;" (assignment_expression "p_Var16 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (!bVar30) goto LAB_0008db0d;" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (goto_statement "goto LAB_0008db0d;" goto statement_identifier ;)) }))) (if_statement "if (local_bf != false) {\n          bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n          local_a0 = (Icf *)CONCAT31(local_a0._1_3_,bVar20);\n          if ((bVar20 & 0xf) != 1) {\n            if ((*local_c4)->options_ == (General_options *)0x0) {\n              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));\n            }\n            if (((*local_c4)->options_->shared_).value == false) {\n              p_Var16 = local_f0;\n              if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = symtab->icf_;\n              local_6c = object;\n              local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);\n              *(undefined4 *)((int)puVar23 + -0xc) = 1;\n              *(undefined4 *)((int)puVar23 + -0x10) = 0;\n              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;\n              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;\n              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;\n              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                        ();\n              puVar23 = (undefined4 *)((int)puVar23 + -4);\n              p_Var16 = extraout_ECX_08;\n            }\n          }\n        }" if (parenthesized_expression "(local_bf != false)" ( (binary_expression "local_bf != false" identifier != false) )) (compound_statement "{\n          bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;\n          local_a0 = (Icf *)CONCAT31(local_a0._1_3_,bVar20);\n          if ((bVar20 & 0xf) != 1) {\n            if ((*local_c4)->options_ == (General_options *)0x0) {\n              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));\n            }\n            if (((*local_c4)->options_->shared_).value == false) {\n              p_Var16 = local_f0;\n              if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = symtab->icf_;\n              local_6c = object;\n              local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);\n              *(undefined4 *)((int)puVar23 + -0xc) = 1;\n              *(undefined4 *)((int)puVar23 + -0x10) = 0;\n              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;\n              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;\n              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;\n              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                        ();\n              puVar23 = (undefined4 *)((int)puVar23 + -4);\n              p_Var16 = extraout_ECX_08;\n            }\n          }\n        }" { (expression_statement "bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish;" (field_expression "bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_finish" (field_expression "bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl" (binary_expression "bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold::Output_data*,_std" (assignment_expression "bVar20 = *(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold" identifier = (binary_expression "*(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base<gold" (pointer_expression "*(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base" * (cast_expression "(byte *)&local_ac->output_lists_[0].\n                             super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_ac->output_lists_[0].\n                             super__Vector_base" & (field_expression "local_ac->output_lists_[0].\n                             super__Vector_base" (subscript_expression "local_ac->output_lists_[0]" (field_expression "local_ac->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_a0 = (Icf *)CONCAT31(local_a0._1_3_,bVar20);" (assignment_expression "local_a0 = (Icf *)CONCAT31(local_a0._1_3_,bVar20)" identifier = (cast_expression "(Icf *)CONCAT31(local_a0._1_3_,bVar20)" ( (type_descriptor "Icf *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_a0._1_3_,bVar20)" identifier (argument_list "(local_a0._1_3_,bVar20)" ( (field_expression "local_a0._1_3_" identifier . field_identifier) , identifier ))))) ;) (if_statement "if ((bVar20 & 0xf) != 1) {\n            if ((*local_c4)->options_ == (General_options *)0x0) {\n              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));\n            }\n            if (((*local_c4)->options_->shared_).value == false) {\n              p_Var16 = local_f0;\n              if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = symtab->icf_;\n              local_6c = object;\n              local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);\n              *(undefined4 *)((int)puVar23 + -0xc) = 1;\n              *(undefined4 *)((int)puVar23 + -0x10) = 0;\n              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;\n              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;\n              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;\n              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                        ();\n              puVar23 = (undefined4 *)((int)puVar23 + -4);\n              p_Var16 = extraout_ECX_08;\n            }\n          }" if (parenthesized_expression "((bVar20 & 0xf) != 1)" ( (binary_expression "(bVar20 & 0xf) != 1" (parenthesized_expression "(bVar20 & 0xf)" ( (binary_expression "bVar20 & 0xf" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            if ((*local_c4)->options_ == (General_options *)0x0) {\n              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));\n            }\n            if (((*local_c4)->options_->shared_).value == false) {\n              p_Var16 = local_f0;\n              if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = symtab->icf_;\n              local_6c = object;\n              local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);\n              *(undefined4 *)((int)puVar23 + -0xc) = 1;\n              *(undefined4 *)((int)puVar23 + -0x10) = 0;\n              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;\n              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;\n              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;\n              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                        ();\n              puVar23 = (undefined4 *)((int)puVar23 + -4);\n              p_Var16 = extraout_ECX_08;\n            }\n          }" { (if_statement "if ((*local_c4)->options_ == (General_options *)0x0) {\n              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));\n            }" if (parenthesized_expression "((*local_c4)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_c4)->options_ == (General_options *)0x0" (field_expression "(*local_c4)->options_" (parenthesized_expression "(*local_c4)" ( (pointer_expression "*local_c4" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;\n              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;\n              gold::do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));\n            }" { (expression_statement "*(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;" (assignment_expression "*(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16" (pointer_expression "*(_Rb_tree_header **)((int)puVar23 + -4)" * (cast_expression "(_Rb_tree_header **)((int)puVar23 + -4)" ( (type_descriptor "_Rb_tree_header **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -4)" ( (binary_expression "(int)puVar23 + -4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)puVar23 + -8)" * (cast_expression "(undefined ***)((int)puVar23 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)puVar23 + -0x10)" * (cast_expression "(int *)((int)puVar23 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e81f;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                         *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if (((*local_c4)->options_->shared_).value == false) {\n              p_Var16 = local_f0;\n              if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = symtab->icf_;\n              local_6c = object;\n              local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);\n              *(undefined4 *)((int)puVar23 + -0xc) = 1;\n              *(undefined4 *)((int)puVar23 + -0x10) = 0;\n              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;\n              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;\n              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;\n              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                        ();\n              puVar23 = (undefined4 *)((int)puVar23 + -4);\n              p_Var16 = extraout_ECX_08;\n            }" if (parenthesized_expression "(((*local_c4)->options_->shared_).value == false)" ( (binary_expression "((*local_c4)->options_->shared_).value == false" (field_expression "((*local_c4)->options_->shared_).value" (parenthesized_expression "((*local_c4)->options_->shared_)" ( (field_expression "(*local_c4)->options_->shared_" (field_expression "(*local_c4)->options_" (parenthesized_expression "(*local_c4)" ( (pointer_expression "*local_c4" * identifier) )) -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n              p_Var16 = local_f0;\n              if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }\n            }" { (expression_statement "p_Var16 = local_f0;" (assignment_expression "p_Var16 = local_f0" identifier = identifier) ;) (if_statement "if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }" if (parenthesized_expression "(local_f0 < (_Rb_tree_header *)0x2b)" ( (binary_expression "local_f0 < (_Rb_tree_header *)0x2b" identifier < (cast_expression "(_Rb_tree_header *)0x2b" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();\n                return;\n              }" { comment comment (expression_statement "(*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4)" * (cast_expression "(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4)" ( (binary_expression "local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4" (subscript_expression "local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)]" identifier [ (cast_expression "(int)((int)(local_f0 + -0x5191) + 0xf)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)(local_f0 + -0x5191) + 0xf)" ( (binary_expression "(int)(local_f0 + -0x5191) + 0xf" (cast_expression "(int)(local_f0 + -0x5191)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 + -0x5191)" ( (binary_expression "local_f0 + -0x5191" identifier + number_literal) ))) + number_literal) ))) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n              local_a0 = symtab->icf_;\n              local_6c = object;\n              local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);\n              *(undefined4 *)((int)puVar23 + -0xc) = 1;\n              *(undefined4 *)((int)puVar23 + -0x10) = 0;\n              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;\n              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;\n              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;\n              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                        ();\n              puVar23 = (undefined4 *)((int)puVar23 + -4);\n              p_Var16 = extraout_ECX_08;\n            }" else (compound_statement "{\n              local_a0 = symtab->icf_;\n              local_6c = object;\n              local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);\n              *(undefined4 *)((int)puVar23 + -0xc) = 1;\n              *(undefined4 *)((int)puVar23 + -0x10) = 0;\n              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;\n              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;\n              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;\n              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                        ();\n              puVar23 = (undefined4 *)((int)puVar23 + -4);\n              p_Var16 = extraout_ECX_08;\n            }" { (expression_statement "local_a0 = symtab->icf_;" (assignment_expression "local_a0 = symtab->icf_" identifier = (field_expression "symtab->icf_" identifier -> field_identifier)) ;) (expression_statement "local_6c = object;" (assignment_expression "local_6c = object" identifier = identifier) ;) (expression_statement "local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2);" (assignment_expression "local_68 = (uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2)" identifier = (binary_expression "(uint)*(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)\n                                ((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2)" ( (binary_expression "(int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish + 2" (field_expression "(int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl._M_finish" (field_expression "(int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                       ._M_impl" (binary_expression "(int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold::Output_data*,_std" (binary_expression "(int)&local_ac->output_lists_[0].\n                                       super__Vector_base<gold" (cast_expression "(int)&local_ac->output_lists_[0].\n                                       super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->output_lists_[0].\n                                       super__Vector_base" & (field_expression "local_ac->output_lists_[0].\n                                       super__Vector_base" (subscript_expression "local_ac->output_lists_[0]" (field_expression "local_ac->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;" (assignment_expression "*(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2" (pointer_expression "*(__node_gen_type **)((int)puVar23 + -0x14)" * (cast_expression "(__node_gen_type **)((int)puVar23 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_2" & identifier)) ;) (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 "*(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;" (assignment_expression "*(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c" (pointer_expression "*(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18)" * (call_expression "(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18)" (parenthesized_expression "(Sized_relobj_file<64,_false> ***)" ( (comma_expression "Sized_relobj_file<64,_false> ***" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> ***" identifier > (pointer_expression "***" * (pointer_expression "**" * (pointer_expression "*" * identifier))))) )) (argument_list "((int)puVar23 + -0x18)" ( (binary_expression "(int)puVar23 + -0x18" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;" (assignment_expression "*(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h" (pointer_expression "*(__hashtable_alloc **)((int)puVar23 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)puVar23 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x1c)" ( (binary_expression "(int)puVar23 + -0x1c" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "__node_gen_2._M_h" identifier . field_identifier)) ;) (expression_statement "*(undefined1 **)((int)puVar23 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)((int)puVar23 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)((int)puVar23 + -0x20)" * (cast_expression "(undefined1 **)((int)puVar23 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x20)" ( (binary_expression "(int)puVar23 + -0x20" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x24) = 0x8e203" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x24)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x24)" ( (binary_expression "(int)puVar23 + -0x24" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "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::" (comma_expression "std::\n              _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n              _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , 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 "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 "puVar23 = (undefined4 *)((int)puVar23 + -4);" (assignment_expression "puVar23 = (undefined4 *)((int)puVar23 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar23 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -4)" ( (binary_expression "(int)puVar23 + -4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "p_Var16 = extraout_ECX_08;" (assignment_expression "p_Var16 = extraout_ECX_08" identifier = identifier) ;) }))) })) })) 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_ac = (Output_segment *)object;" (assignment_expression "local_ac = (Output_segment *)object" identifier = (cast_expression "(Output_segment *)object" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar22 = puVar23;" (assignment_expression "puVar22 = puVar23" identifier = identifier) ;) (labeled_statement "LAB_0008de7e:\n          if ((*local_c4)->options_ == (General_options *)0x0) {\n            puVar22[-2] = local_a4 + -0x65b32;\n            puVar22[-3] = 0x5c;\n            puVar22[-4] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar22[-5] = 0x8e782;\n            gold::do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2]);\n          }" statement_identifier : (if_statement "if ((*local_c4)->options_ == (General_options *)0x0) {\n            puVar22[-2] = local_a4 + -0x65b32;\n            puVar22[-3] = 0x5c;\n            puVar22[-4] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar22[-5] = 0x8e782;\n            gold::do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2]);\n          }" if (parenthesized_expression "((*local_c4)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_c4)->options_ == (General_options *)0x0" (field_expression "(*local_c4)->options_" (parenthesized_expression "(*local_c4)" ( (pointer_expression "*local_c4" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar22[-2] = local_a4 + -0x65b32;\n            puVar22[-3] = 0x5c;\n            puVar22[-4] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n            puVar22[-5] = 0x8e782;\n            gold::do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2]);\n          }" { (expression_statement "puVar22[-2] = local_a4 + -0x65b32;" (assignment_expression "puVar22[-2] = local_a4 + -0x65b32" (subscript_expression "puVar22[-2]" identifier [ number_literal ]) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "puVar22[-3] = 0x5c;" (assignment_expression "puVar22[-3] = 0x5c" (subscript_expression "puVar22[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[-4] = (int)local_a4 + -0x1a1d93;" (assignment_expression "puVar22[-4] = (int)local_a4 + -0x1a1d93" (subscript_expression "puVar22[-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 "puVar22[-5] = 0x8e782;" (assignment_expression "puVar22[-5] = 0x8e782" (subscript_expression "puVar22[-5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2]);" (call_expression "do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2])" identifier (argument_list "((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2])" ( (cast_expression "(char *)puVar22[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[-4]" identifier [ number_literal ])) , (subscript_expression "puVar22[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar22[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[-2]" identifier [ number_literal ])) ))) ;)) }))) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) if (parenthesized_expression "(((*local_c4)->options_->gc_sections_).value != false)" ( (binary_expression "((*local_c4)->options_->gc_sections_).value != false" (field_expression "((*local_c4)->options_->gc_sections_).value" (parenthesized_expression "((*local_c4)->options_->gc_sections_)" ( (field_expression "(*local_c4)->options_->gc_sections_" (field_expression "(*local_c4)->options_" (parenthesized_expression "(*local_c4)" ( (pointer_expression "*local_c4" * 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_Var16 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var16 = &(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_ac;" (assignment_expression "dst_id.first = (Relobj *)local_ac" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_ac" ( (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_Var3 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent;" (assignment_expression "p_Var3 = (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_Var18 = &p_Var16->_M_header;" (assignment_expression "p_Var18 = &p_Var16->_M_header" identifier = (pointer_expression "&p_Var16->_M_header" & (field_expression "p_Var16->_M_header" identifier -> field_identifier))) ;) if (parenthesized_expression "(p_Var3 == (_Base_ptr)0x0)" ( (binary_expression "p_Var3 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) { (labeled_statement "LAB_0008df10:\n              puVar22[-4] = &local_74;" statement_identifier : (expression_statement "puVar22[-4] = &local_74;" (assignment_expression "puVar22[-4] = &local_74" (subscript_expression "puVar22[-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 "puVar22[-5] = 0x8df2b;" (assignment_expression "puVar22[-5] = 0x8df2b" (subscript_expression "puVar22[-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                          *)puVar22[-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 "*)puVar22[-4]" * (ERROR ")" )) (subscript_expression "puVar22[-4]" identifier [ number_literal ]))) , (cast_expression "(_Base_ptr)puVar22[-3]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar22[-3]" identifier [ number_literal ])) , ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-2],\n                         (tuple<> *)puVar22[-1],(piecewise_construct_t *)*puVar22);\n              p_Var17 = local_98;\n            }\n            else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-2],\n                         (tuple<> *)puVar22[-1],(piecewise_construct_t *)*puVar22)" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-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 "&> *)puVar22[-2]" & (ERROR ">" >) (pointer_expression "*)puVar22[-2]" * (ERROR ")" )) (subscript_expression "puVar22[-2]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar22[-1],(piecewise_construct_t *)*puVar22)" ( (comma_expression "tuple<> *)puVar22[-1],(piecewise_construct_t *)*puVar22" (binary_expression "tuple<> *)puVar22[-1]" identifier < (ERROR ">" >) (pointer_expression "*)puVar22[-1]" * (ERROR ")" )) (subscript_expression "puVar22[-1]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)*puVar22" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) ))) ; (assignment_expression "p_Var17 = local_98" identifier = identifier) ; } else) (compound_statement "{\n              do {\n                while ((p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008defa;\n                }\n                p_Var3 = (_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                         _M_start;\n                p_Var17 = (_Rb_tree_header *)p_Var18;\n              } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008defa:\n              if (((p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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            pTVar4 = (*local_c4)->target_;\n            if (pTVar4 == (Target *)0x0) {\n              puVar22[-3] = local_a4 + -0x65db8;\n              puVar22[-4] = 0x73;\n              puVar22[-5] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar22[-6] = 0x8e7e2;\n              gold::do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3]);\n            }\n            ppuVar25 = (undefined **)pTVar4->_vptr_Target[0x41];\n            p_Var16 = (_Rb_tree_header *)(local_a4 + -0x1569f4);\n            if ((_Rb_tree_header *)ppuVar25 != p_Var16) {\n              puVar22[-2] = local_b8;\n              puVar22[-3] = local_bc;\n              puVar22[-4] = local_a8;\n              puVar22[-5] = local_ac;\n              puVar22[-6] = data_shndx;\n              puVar22[-7] = object;\n              puVar22[-8] = symtab;\n              puVar22[-9] = pTVar4;\n              puVar22[-10] = 0x8e0fc;\n              (*(code *)ppuVar25)();\n              p_Var16 = extraout_ECX_07;\n            }\n            pp_Var13 = local_cc;\n            puVar23 = puVar22 + -1;\n            if (local_cc != (_func_int_varargs **)0x0) {\n              local_a8 = (Relobj *)&local_2c;\n              pGVar5 = symtab->gc_;\n              puVar22[-5] = local_cc;\n              src_id.first = (Relobj *)&local_2c;\n              local_a0 = (Icf *)&src_id;\n              puVar22[-6] = 0x8dfc4;\n              sVar12 = strlen((char *)puVar22[-5]);\n              pIVar9 = local_a0;\n              puVar22[-2] = 0;\n              puVar22[-3] = (byte *)((int)pp_Var13 + sVar12);\n              puVar22[-4] = pp_Var13;\n              puVar22[-5] = local_a0;\n              puVar22[-6] = 0x8dfd9;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar22[-3] = pIVar9;\n              puVar22[-4] = &pGVar5->cident_sections_;\n              puVar22[-5] = &local_9c;\n              puVar22[-6] = 0x8dfed;\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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc);\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_f8) {\n    *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc0a;\n    operator_delete(*(void **)((int)puVar23 + -0x10));\n  }\n  return;\n}" { (do_statement "do {\n                while ((p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008defa;\n                }\n                p_Var3 = (_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                         _M_start;\n                p_Var17 = (_Rb_tree_header *)p_Var18;\n              } while (p_Var3 != (_Base_ptr)0x0);" do (ERROR "{\n                while ((p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008defa;\n                }\n                p_Var3 = (_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                         _M_start;" (compound_statement "{\n                while ((p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008defa;\n                }" { (while_statement "while ((p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008defa;" while (parenthesized_expression "((p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0)" ( (binary_expression "(p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0" (field_expression "(p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)._M_left" (parenthesized_expression "(p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left;\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_M_header)" ( (comma_expression "p_Var17 = (_Rb_tree_header *)p_Var3,\n                       object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left" (assignment_expression "p_Var17 = (_Rb_tree_header *)p_Var3" identifier = (cast_expression "(_Rb_tree_header *)p_Var3" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "object <= (Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left" identifier <= (assignment_expression "(Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {\n                  p_Var3 = (p_Var17->_M_header)._M_left" (parenthesized_expression "(Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1])))))" ( (comma_expression "Sized_relobj_file<64,_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&\n                       ((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))" (binary_expression "_false> *)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var17 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var17 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var17 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var17 + 0x10)" ( (binary_expression "(int)p_Var17 + 0x10" (cast_expression "(int)p_Var17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) && (parenthesized_expression "((object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))" ( (parenthesized_expression "(object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1])))" ( (binary_expression "object != (Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))" identifier != (parenthesized_expression "(Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))" ( (comma_expression "Sized_relobj_file<64,_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1])" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||\n                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1])" (binary_expression "_false> *)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var17 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var17 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var17 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var17 + 0x10)" ( (binary_expression "(int)p_Var17 + 0x10" (cast_expression "(int)p_Var17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) || (parenthesized_expression "(data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1])" ( (binary_expression "data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]" identifier <= (subscript_expression "((pointer *)((int)p_Var17 + 0x10))[1]" (parenthesized_expression "((pointer *)((int)p_Var17 + 0x10))" ( (cast_expression "(pointer *)((int)p_Var17 + 0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var17 + 0x10)" ( (binary_expression "(int)p_Var17 + 0x10" (cast_expression "(int)p_Var17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) [ number_literal ])) )))) ))) )) )))) )) (ERROR "{\n                  p_Var3" { identifier) = (field_expression "(p_Var17->_M_header)._M_left" (parenthesized_expression "(p_Var17->_M_header)" ( (field_expression "p_Var17->_M_header" identifier -> field_identifier) )) . field_identifier)))) (ERROR ";\n                  p_Var18 = &p_Var17->_M_header;\n                  if ((p_Var17->_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_0008defa;" goto statement_identifier ;)) }) (expression_statement "p_Var3 = (_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                         _M_start;" (assignment_expression "p_Var3 = (_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                         _M_start" identifier = (field_expression "(_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                         _M_start" (field_expression "(_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl" (call_expression "(_Base_ptr)\n                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "(((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" ( (binary_expression "((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base<unsigned_int" (field_expression "((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->\n                         super__Vector_base" (parenthesized_expression "((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)" ( (cast_expression "(Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right" ( (type_descriptor "Reloc_addend_size_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(p_Var17->_M_header)._M_right" & (field_expression "(p_Var17->_M_header)._M_right" (parenthesized_expression "(p_Var17->_M_header)" ( (field_expression "p_Var17->_M_header" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) ))) . field_identifier) . field_identifier)) ;)) (expression_statement "p_Var17 = (_Rb_tree_header *)p_Var18;" (assignment_expression "p_Var17 = (_Rb_tree_header *)p_Var18" identifier = (cast_expression "(_Rb_tree_header *)p_Var18" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "}" }) while (parenthesized_expression "(p_Var3 != (_Base_ptr)0x0)" ( (binary_expression "p_Var3 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0008defa:\n              if (((p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\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_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std::pair<gold" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57;\n            std::\n            _Hashtable<std" (assignment_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9] = 0x8df57" (subscript_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8;\n            puVar22[-9]" (assignment_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8] = local_d8" (subscript_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h;\n            puVar22[-8]" (assignment_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7] = __node_gen._M_h" (subscript_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id;\n            puVar22[-7]" (assignment_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6] = &dst_id" (subscript_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4;\n            puVar22[-6]" (assignment_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5] = local_f4" (subscript_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0;\n            puVar22[-5]" (assignment_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4] = 0" (subscript_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1;\n            puVar22[-4]" (assignment_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3] = 1" (subscript_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);\n            puVar22[-3]" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||\n                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4)" (binary_expression "(p_Var16 == p_Var17) ||\n                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count))" (parenthesized_expression "(p_Var16 == p_Var17)" ( (binary_expression "p_Var16 == p_Var17" identifier == identifier) )) || (parenthesized_expression "(object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count))" ( (binary_expression "object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)" identifier < (parenthesized_expression "(Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)" ( (comma_expression "Sized_relobj_file<64,_false> *)p_Var17->_M_node_count" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> *)p_Var17->_M_node_count" identifier > (pointer_expression "*)p_Var17->_M_node_count" * (ERROR ")" )) (field_expression "p_Var17->_M_node_count" identifier -> field_identifier)))) ))) ))) || (assignment_expression "((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4)" (field_expression "((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;\n            }\n            __node_gen._M_h" (parenthesized_expression "((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1)))))" ( (parenthesized_expression "(object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))))" ( (binary_expression "object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1)))" identifier == (parenthesized_expression "(Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1)))" ( (comma_expression "Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> *)p_Var17->_M_node_count &&\n                  (data_shndx < *(pointer *)(p_Var17 + 1))" (binary_expression "_false> *)p_Var17->_M_node_count" identifier > (pointer_expression "*)p_Var17->_M_node_count" * (ERROR ")" )) (field_expression "p_Var17->_M_node_count" identifier -> field_identifier))) && (parenthesized_expression "(data_shndx < *(pointer *)(p_Var17 + 1))" ( (binary_expression "data_shndx < *(pointer *)(p_Var17 + 1)" identifier < (pointer_expression "*(pointer *)(p_Var17 + 1)" * (cast_expression "(pointer *)(p_Var17 + 1)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var17 + 1)" ( (binary_expression "p_Var17 + 1" identifier + number_literal) ))))) )))) ))) )) )) (ERROR "goto LAB_0008df10;\n            }\n            __node_gen" identifier identifier ; } identifier) . field_identifier) = (cast_expression "(__hashtable_alloc *)((int)(p_Var17 + 1) + 4)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var17 + 1) + 4)" ( (binary_expression "(int)(p_Var17 + 1) + 4" (cast_expression "(int)(p_Var17 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var17 + 1)" ( (binary_expression "p_Var17 + 1" identifier + number_literal) ))) + number_literal) ))))) (ERROR ";\n            puVar22" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            puVar22" ; identifier) [ number_literal ]) = number_literal) (ERROR ";\n            puVar22" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar22" ; identifier) [ number_literal ]) = (pointer_expression "&dst_id" & identifier)) (ERROR ";\n            puVar22" ; identifier) [ number_literal ]) = (field_expression "__node_gen._M_h" identifier . field_identifier)) (ERROR ";\n            puVar22" ; identifier) [ number_literal ]) = identifier) (ERROR ";\n            puVar22" ; 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 "pTVar4 = (*local_c4)->target_;" (assignment_expression "pTVar4 = (*local_c4)->target_" identifier = (field_expression "(*local_c4)->target_" (parenthesized_expression "(*local_c4)" ( (pointer_expression "*local_c4" * identifier) )) -> field_identifier)) ;) (if_statement "if (pTVar4 == (Target *)0x0) {\n              puVar22[-3] = local_a4 + -0x65db8;\n              puVar22[-4] = 0x73;\n              puVar22[-5] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar22[-6] = 0x8e7e2;\n              gold::do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3]);\n            }" if (parenthesized_expression "(pTVar4 == (Target *)0x0)" ( (binary_expression "pTVar4 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar22[-3] = local_a4 + -0x65db8;\n              puVar22[-4] = 0x73;\n              puVar22[-5] = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n              puVar22[-6] = 0x8e7e2;\n              gold::do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3]);\n            }" { (expression_statement "puVar22[-3] = local_a4 + -0x65db8;" (assignment_expression "puVar22[-3] = local_a4 + -0x65db8" (subscript_expression "puVar22[-3]" identifier [ number_literal ]) = (binary_expression "local_a4 + -0x65db8" identifier + number_literal)) ;) (expression_statement "puVar22[-4] = 0x73;" (assignment_expression "puVar22[-4] = 0x73" (subscript_expression "puVar22[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[-5] = (int)local_a4 + -0x1a1d93;" (assignment_expression "puVar22[-5] = (int)local_a4 + -0x1a1d93" (subscript_expression "puVar22[-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 "puVar22[-6] = 0x8e7e2;" (assignment_expression "puVar22[-6] = 0x8e7e2" (subscript_expression "puVar22[-6]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3]);" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3]);" (call_expression "do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3])" identifier (argument_list "((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3])" ( (cast_expression "(char *)puVar22[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[-5]" identifier [ number_literal ])) , (subscript_expression "puVar22[-4]" identifier [ number_literal ]) , (cast_expression "(char *)puVar22[-3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[-3]" identifier [ number_literal ])) ))) ;)) })) (expression_statement "ppuVar25 = (undefined **)pTVar4->_vptr_Target[0x41];" (assignment_expression "ppuVar25 = (undefined **)pTVar4->_vptr_Target[0x41]" identifier = (cast_expression "(undefined **)pTVar4->_vptr_Target[0x41]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pTVar4->_vptr_Target[0x41]" (field_expression "pTVar4->_vptr_Target" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "p_Var16 = (_Rb_tree_header *)(local_a4 + -0x1569f4);" (assignment_expression "p_Var16 = (_Rb_tree_header *)(local_a4 + -0x1569f4)" identifier = (cast_expression "(_Rb_tree_header *)(local_a4 + -0x1569f4)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4 + -0x1569f4)" ( (binary_expression "local_a4 + -0x1569f4" identifier + number_literal) )))) ;) (if_statement "if ((_Rb_tree_header *)ppuVar25 != p_Var16) {\n              puVar22[-2] = local_b8;\n              puVar22[-3] = local_bc;\n              puVar22[-4] = local_a8;\n              puVar22[-5] = local_ac;\n              puVar22[-6] = data_shndx;\n              puVar22[-7] = object;\n              puVar22[-8] = symtab;\n              puVar22[-9] = pTVar4;\n              puVar22[-10] = 0x8e0fc;\n              (*(code *)ppuVar25)();\n              p_Var16 = extraout_ECX_07;\n            }" if (parenthesized_expression "((_Rb_tree_header *)ppuVar25 != p_Var16)" ( (binary_expression "(_Rb_tree_header *)ppuVar25 != p_Var16" (cast_expression "(_Rb_tree_header *)ppuVar25" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n              puVar22[-2] = local_b8;\n              puVar22[-3] = local_bc;\n              puVar22[-4] = local_a8;\n              puVar22[-5] = local_ac;\n              puVar22[-6] = data_shndx;\n              puVar22[-7] = object;\n              puVar22[-8] = symtab;\n              puVar22[-9] = pTVar4;\n              puVar22[-10] = 0x8e0fc;\n              (*(code *)ppuVar25)();\n              p_Var16 = extraout_ECX_07;\n            }" { (expression_statement "puVar22[-2] = local_b8;" (assignment_expression "puVar22[-2] = local_b8" (subscript_expression "puVar22[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-3] = local_bc;" (assignment_expression "puVar22[-3] = local_bc" (subscript_expression "puVar22[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-4] = local_a8;" (assignment_expression "puVar22[-4] = local_a8" (subscript_expression "puVar22[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-5] = local_ac;" (assignment_expression "puVar22[-5] = local_ac" (subscript_expression "puVar22[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-6] = data_shndx;" (assignment_expression "puVar22[-6] = data_shndx" (subscript_expression "puVar22[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-7] = object;" (assignment_expression "puVar22[-7] = object" (subscript_expression "puVar22[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-8] = symtab;" (assignment_expression "puVar22[-8] = symtab" (subscript_expression "puVar22[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-9] = pTVar4;" (assignment_expression "puVar22[-9] = pTVar4" (subscript_expression "puVar22[-9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-10] = 0x8e0fc;" (assignment_expression "puVar22[-10] = 0x8e0fc" (subscript_expression "puVar22[-10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)ppuVar25)();" (call_expression "(*(code *)ppuVar25)()" (parenthesized_expression "(*(code *)ppuVar25)" ( (pointer_expression "*(code *)ppuVar25" * (cast_expression "(code *)ppuVar25" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "p_Var16 = extraout_ECX_07;" (assignment_expression "p_Var16 = extraout_ECX_07" identifier = identifier) ;) })) (expression_statement "pp_Var13 = local_cc;" (assignment_expression "pp_Var13 = local_cc" identifier = identifier) ;) (expression_statement "puVar23 = puVar22 + -1;" (assignment_expression "puVar23 = puVar22 + -1" identifier = (binary_expression "puVar22 + -1" identifier + number_literal)) ;) (if_statement "if (local_cc != (_func_int_varargs **)0x0) {\n              local_a8 = (Relobj *)&local_2c;\n              pGVar5 = symtab->gc_;\n              puVar22[-5] = local_cc;\n              src_id.first = (Relobj *)&local_2c;\n              local_a0 = (Icf *)&src_id;\n              puVar22[-6] = 0x8dfc4;\n              sVar12 = strlen((char *)puVar22[-5]);\n              pIVar9 = local_a0;\n              puVar22[-2] = 0;\n              puVar22[-3] = (byte *)((int)pp_Var13 + sVar12);\n              puVar22[-4] = pp_Var13;\n              puVar22[-5] = local_a0;\n              puVar22[-6] = 0x8dfd9;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar22[-3] = pIVar9;\n              puVar22[-4] = &pGVar5->cident_sections_;\n              puVar22[-5] = &local_9c;\n              puVar22[-6] = 0x8dfed;\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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc);\n  }" if (parenthesized_expression "(local_cc != (_func_int_varargs **)0x0)" ( (binary_expression "local_cc != (_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              pGVar5 = symtab->gc_;\n              puVar22[-5] = local_cc;\n              src_id.first = (Relobj *)&local_2c;\n              local_a0 = (Icf *)&src_id;\n              puVar22[-6] = 0x8dfc4;\n              sVar12 = strlen((char *)puVar22[-5]);\n              pIVar9 = local_a0;\n              puVar22[-2] = 0;\n              puVar22[-3] = (byte *)((int)pp_Var13 + sVar12);\n              puVar22[-4] = pp_Var13;\n              puVar22[-5] = local_a0;\n              puVar22[-6] = 0x8dfd9;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar22[-3] = pIVar9;\n              puVar22[-4] = &pGVar5->cident_sections_;\n              puVar22[-5] = &local_9c;\n              puVar22[-6] = 0x8dfed;\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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc);\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 "pGVar5 = symtab->gc_;" (assignment_expression "pGVar5 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) ;) (expression_statement "puVar22[-5] = local_cc;" (assignment_expression "puVar22[-5] = local_cc" (subscript_expression "puVar22[-5]" identifier [ number_literal ]) = 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 "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 "puVar22[-6] = 0x8dfc4;" (assignment_expression "puVar22[-6] = 0x8dfc4" (subscript_expression "puVar22[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar12 = strlen((char *)puVar22[-5]);" (assignment_expression "sVar12 = strlen((char *)puVar22[-5])" identifier = (call_expression "strlen((char *)puVar22[-5])" identifier (argument_list "((char *)puVar22[-5])" ( (cast_expression "(char *)puVar22[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[-5]" identifier [ number_literal ])) )))) ;) (expression_statement "pIVar9 = local_a0;" (assignment_expression "pIVar9 = local_a0" identifier = identifier) ;) (expression_statement "puVar22[-2] = 0;" (assignment_expression "puVar22[-2] = 0" (subscript_expression "puVar22[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar22[-3] = (byte *)((int)pp_Var13 + sVar12);" (assignment_expression "puVar22[-3] = (byte *)((int)pp_Var13 + sVar12)" (subscript_expression "puVar22[-3]" identifier [ number_literal ]) = (cast_expression "(byte *)((int)pp_Var13 + sVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_Var13 + sVar12)" ( (binary_expression "(int)pp_Var13 + sVar12" (cast_expression "(int)pp_Var13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar22[-4] = pp_Var13;" (assignment_expression "puVar22[-4] = pp_Var13" (subscript_expression "puVar22[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-5] = local_a0;" (assignment_expression "puVar22[-5] = local_a0" (subscript_expression "puVar22[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-6] = 0x8dfd9;" (assignment_expression "puVar22[-6] = 0x8dfd9" (subscript_expression "puVar22[-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 "puVar22[-3] = pIVar9;" (assignment_expression "puVar22[-3] = pIVar9" (subscript_expression "puVar22[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[-4] = &pGVar5->cident_sections_;" (assignment_expression "puVar22[-4] = &pGVar5->cident_sections_" (subscript_expression "puVar22[-4]" identifier [ number_literal ]) = (pointer_expression "&pGVar5->cident_sections_" & (field_expression "pGVar5->cident_sections_" identifier -> field_identifier))) ;) (expression_statement "puVar22[-5] = &local_9c;" (assignment_expression "puVar22[-5] = &local_9c" (subscript_expression "puVar22[-5]" identifier [ number_literal ]) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "puVar22[-6] = 0x8dfed;" (assignment_expression "puVar22[-6] = 0x8dfed" (subscript_expression "puVar22[-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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc);" (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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc)" (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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc)" 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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc)" ( (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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc)" ( (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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4]);\n              puVar10 = local_9c;\n              p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8) {\n                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }\n              puVar23 = puVar22 + -2;\n              pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" (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                      *)puVar22[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-4])" (binary_expression "_unsigned_int>_>_>_>_>_>\n                      *)puVar22[-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 "*)puVar22[-5]" * (ERROR ")" )) (subscript_expression "puVar22[-5]" identifier [ number_literal ]))) , (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar22[-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                     puVar22[-4]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)\n                     puVar22[-4]" * (ERROR ")" )) (subscript_expression "puVar22[-4]" identifier [ number_literal ]))) ))) ; (assignment_expression "puVar10 = local_9c" identifier = identifier) ; (call_expression "p_Var16 = extraout_ECX_04;\n              if (src_id.first != local_a8)" (assignment_expression "p_Var16 = extraout_ECX_04" 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                puVar22[-6] = src_id.first;\n                puVar22[-7] = 0x8e010;\n                operator_delete((void *)puVar22[-6]);\n                p_Var16 = extraout_ECX_05;\n              }" { (expression_statement "puVar22[-6] = src_id.first;" (assignment_expression "puVar22[-6] = src_id.first" (subscript_expression "puVar22[-6]" identifier [ number_literal ]) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "puVar22[-7] = 0x8e010;" (assignment_expression "puVar22[-7] = 0x8e010" (subscript_expression "puVar22[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar22[-6]);" (call_expression "operator_delete((void *)puVar22[-6])" identifier (argument_list "((void *)puVar22[-6])" ( (cast_expression "(void *)puVar22[-6]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[-6]" identifier [ number_literal ])) ))) ;) (expression_statement "p_Var16 = extraout_ECX_05;" (assignment_expression "p_Var16 = extraout_ECX_05" identifier = identifier) ;) }) (assignment_expression "puVar23 = puVar22 + -2" identifier = (binary_expression "puVar22 + -2" identifier + number_literal)) ; (call_expression "pGVar5 = symtab->gc_;\n              if ((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" (assignment_expression "pGVar5 = symtab->gc_" identifier = (field_expression "symtab->gc_" identifier -> field_identifier)) (ERROR ";\n              if" ; if) (argument_list "((_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header)" ( (binary_expression "(_Rb_tree_header *)puVar10 !=\n                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)puVar10" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar5->cident_sections_)._M_t._M_impl" (field_expression "(pGVar5->cident_sections_)._M_t" (parenthesized_expression "(pGVar5->cident_sections_)" ( (field_expression "pGVar5->cident_sections_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) )))) (compound_statement "{\n                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;\n                src_id.first = (Relobj *)object;\n                src_id.second = data_shndx;\n                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;\n                p_Var18 = &p_Var17->_M_header;\n                if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        uVar21 = uVar21 - object->local_symbol_count_;\n        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }\n        src_id_1.first = (Relobj *)ppSVar2[uVar21];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }\n_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;\n        p_Var16 = (_Rb_tree_header *)&DAT_00000008;\n        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);\n        pp_Var28 = pp_Var13;\n        do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);\n        bVar31 = false;\n        bVar30 = (!bVar30 && !bVar32) == bVar30;\n        if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }\n        puVar22 = puVar23;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" { (expression_statement "p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar5->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar5->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar5->section_reloc_map_)" ( (field_expression "pGVar5->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_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 "p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent;" (assignment_expression "p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent" identifier = (field_expression "(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                         _M_parent" (field_expression "(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar5->section_reloc_map_)._M_t._M_impl" (field_expression "(pGVar5->section_reloc_map_)._M_t" (parenthesized_expression "(pGVar5->section_reloc_map_)" ( (field_expression "pGVar5->section_reloc_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var18 = &p_Var17->_M_header;" (assignment_expression "p_Var18 = &p_Var17->_M_header" identifier = (pointer_expression "&p_Var17->_M_header" & (field_expression "p_Var17->_M_header" identifier -> field_identifier))) ;) (if_statement "if (p_Var3 == (_Base_ptr)0x0) {\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }" if (parenthesized_expression "(p_Var3 == (_Base_ptr)0x0)" ( (binary_expression "p_Var3 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0008e140:\n                  puVar22[-6] = &local_70;\n                  local_70 = local_a0;\n                  puVar22[-7] = 0x8e15e;\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }" { (labeled_statement "LAB_0008e140:\n                  puVar22[-6] = &local_70;" statement_identifier : (expression_statement "puVar22[-6] = &local_70;" (assignment_expression "puVar22[-6] = &local_70" (subscript_expression "puVar22[-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 "puVar22[-7] = 0x8e15e;" (assignment_expression "puVar22[-7] = 0x8e15e" (subscript_expression "puVar22[-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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;" (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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39" (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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39" ( (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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39" (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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)((int)puVar23 + -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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_0008e2a7:\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                              *)puVar22[-6],(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (binary_expression "_unsigned_int>_>_>_>_>_>\n                              *)puVar22[-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 "*)puVar22[-6]" * (ERROR ")" )) (subscript_expression "puVar22[-6]" identifier [ number_literal ]))) , (comma_expression "(_Base_ptr)puVar22[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (cast_expression "(_Base_ptr)puVar22[-5]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar22[-5]" identifier [ number_literal ])) , (assignment_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first = (Relobj *)0x0" (field_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_) {\n          src_id_1.first" (parenthesized_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else {\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < object->local_symbol_count_)" ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);\n                  p_Var16 = local_98;\n                }\n                else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],\n                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2])" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-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 "&> *)puVar22[-4]" & (ERROR ">" >) (pointer_expression "*)puVar22[-4]" * (ERROR ")" )) (subscript_expression "puVar22[-4]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2])" ( (comma_expression "tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]" (binary_expression "tuple<> *)puVar22[-3]" identifier < (ERROR ">" >) (pointer_expression "*)puVar22[-3]" * (ERROR ")" )) (subscript_expression "puVar22[-3]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)puVar22[-2]" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[-2]" identifier [ number_literal ]))) ))) ; (assignment_expression "p_Var16 = local_98" identifier = identifier) ; } else) (compound_statement "{\n                  do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);\nLAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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                  puVar23 = (undefined4 *)((int)puVar22 + -4);\n                  p_Var16 = extraout_ECX_06;\n                  puVar22 = (undefined4 *)((int)puVar22 + -4);\n                }" { (do_statement "do {\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;\n                    p_Var16 = (_Rb_tree_header *)p_Var18;\n                  } while (p_Var3 != (_Base_ptr)0x0);" do (ERROR "{\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }\n                    p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;" (compound_statement "{\n                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;\n                    }" { (while_statement "while ((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;" while (parenthesized_expression "((p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0)" ( (binary_expression "(p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0" (field_expression "(p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)._M_left" (parenthesized_expression "(p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left;\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_M_header)" ( (comma_expression "p_Var16 = (_Rb_tree_header *)p_Var3,\n                           object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left" (assignment_expression "p_Var16 = (_Rb_tree_header *)p_Var3" identifier = (cast_expression "(_Rb_tree_header *)p_Var3" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "object <= (Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left" identifier <= (assignment_expression "(Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {\n                      p_Var3 = (p_Var16->_M_header)._M_left" (parenthesized_expression "(Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1])))))" ( (comma_expression "Sized_relobj_file<64,_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&\n                           ((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))" (binary_expression "_false> *)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var16 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var16 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var16 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var16 + 0x10)" ( (binary_expression "(int)p_Var16 + 0x10" (cast_expression "(int)p_Var16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) && (parenthesized_expression "((object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))" ( (parenthesized_expression "(object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1])))" ( (binary_expression "object != (Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))" identifier != (parenthesized_expression "(Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))" ( (comma_expression "Sized_relobj_file<64,_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1])" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||\n                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1])" (binary_expression "_false> *)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color" identifier > (pointer_expression "*)\n                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color" * (ERROR ")" )) (field_expression "((_Base_ptr)((int)p_Var16 + 0x10))->_M_color" (parenthesized_expression "((_Base_ptr)((int)p_Var16 + 0x10))" ( (call_expression "(_Base_ptr)((int)p_Var16 + 0x10)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "((int)p_Var16 + 0x10)" ( (binary_expression "(int)p_Var16 + 0x10" (cast_expression "(int)p_Var16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier))) || (parenthesized_expression "(data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1])" ( (binary_expression "data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]" identifier <= (subscript_expression "((pointer *)((int)p_Var16 + 0x10))[1]" (parenthesized_expression "((pointer *)((int)p_Var16 + 0x10))" ( (cast_expression "(pointer *)((int)p_Var16 + 0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var16 + 0x10)" ( (binary_expression "(int)p_Var16 + 0x10" (cast_expression "(int)p_Var16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) [ number_literal ])) )))) ))) )) )))) )) (ERROR "{\n                      p_Var3" { identifier) = (field_expression "(p_Var16->_M_header)._M_left" (parenthesized_expression "(p_Var16->_M_header)" ( (field_expression "p_Var16->_M_header" identifier -> field_identifier) )) . field_identifier)))) (ERROR ";\n                      p_Var18 = &p_Var16->_M_header;\n                      if ((p_Var16->_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_0008e06a;" goto statement_identifier ;)) }) (expression_statement "p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start;" (assignment_expression "p_Var3 = (_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start" identifier = (field_expression "(_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl._M_start" (field_expression "(_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).\n                             _M_impl" (call_expression "(_Base_ptr)\n                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" (parenthesized_expression "(_Base_ptr)" ( identifier )) (argument_list "(((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" ( (binary_expression "((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base<unsigned_int" (field_expression "((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->\n                             super__Vector_base" (parenthesized_expression "((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)" ( (cast_expression "(Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right" ( (type_descriptor "Reloc_addend_size_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(p_Var16->_M_header)._M_right" & (field_expression "(p_Var16->_M_header)._M_right" (parenthesized_expression "(p_Var16->_M_header)" ( (field_expression "p_Var16->_M_header" identifier -> field_identifier) )) . field_identifier))) )) -> field_identifier) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) ))) . field_identifier) . field_identifier)) ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)p_Var18;" (assignment_expression "p_Var16 = (_Rb_tree_header *)p_Var18" identifier = (cast_expression "(_Rb_tree_header *)p_Var18" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "}" }) while (parenthesized_expression "(p_Var3 != (_Base_ptr)0x0)" ( (binary_expression "p_Var3 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_0008e06a:\n                  if (((p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\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_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std::pair<gold" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);\n                  std::\n                  _Hashtable<std" (assignment_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1)" (field_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;\n                  __node_gen_1._M_h" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;\n                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;\n                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;\n                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;\n                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar22 + -0x10) = 0" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6) {\n                  *(undefined4 *)((int)puVar22 + -0xc) = 1" (call_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2;\n                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6)" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1);\n                puVar22 = puVar22 + -2" (call_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)(p_Var16 + 1)" (call_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2;\n                ppuVar8 = (pointer *)" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||\n                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2" (binary_expression "(p_Var16 == p_Var17) ||\n                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count))" (parenthesized_expression "(p_Var16 == p_Var17)" ( (binary_expression "p_Var16 == p_Var17" identifier == identifier) )) || (parenthesized_expression "(object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count))" ( (binary_expression "object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)" identifier < (parenthesized_expression "(Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)" ( (comma_expression "Sized_relobj_file<64,_false> *)p_Var16->_M_node_count" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> *)p_Var16->_M_node_count" identifier > (pointer_expression "*)p_Var16->_M_node_count" * (ERROR ")" )) (field_expression "p_Var16->_M_node_count" identifier -> field_identifier)))) ))) ))) || (assignment_expression "((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;\n                }\n                puVar23 = puVar22 + -2" (parenthesized_expression "((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1)))))" ( (parenthesized_expression "(object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))))" ( (binary_expression "object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1)))" identifier == (parenthesized_expression "(Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1)))" ( (comma_expression "Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false> *)p_Var16->_M_node_count &&\n                      (data_shndx < *(pointer *)(p_Var16 + 1))" (binary_expression "_false> *)p_Var16->_M_node_count" identifier > (pointer_expression "*)p_Var16->_M_node_count" * (ERROR ")" )) (field_expression "p_Var16->_M_node_count" identifier -> field_identifier))) && (parenthesized_expression "(data_shndx < *(pointer *)(p_Var16 + 1))" ( (binary_expression "data_shndx < *(pointer *)(p_Var16 + 1)" identifier < (pointer_expression "*(pointer *)(p_Var16 + 1)" * (cast_expression "(pointer *)(p_Var16 + 1)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var16 + 1)" ( (binary_expression "p_Var16 + 1" identifier + number_literal) ))))) )))) ))) )) )) (ERROR "goto LAB_0008e140;\n                }\n                puVar23" identifier identifier ; } identifier) = (binary_expression "puVar22 + -2" identifier + number_literal))) (ERROR ";\n                ppuVar8 =" ; identifier =) (argument_list "(pointer *)" ( (binary_expression "pointer *" identifier * identifier) ))) (argument_list "(p_Var16 + 1)" ( (binary_expression "p_Var16 + 1" identifier + number_literal) ))) (ERROR ";\n                puVar22 = puVar22" ; identifier = identifier) + number_literal) (ERROR ";\n                for" ; for) (argument_list "(puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;\n                    puVar6 = (undefined4 *)*puVar6)" ( (ERROR "puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;" (binary_expression "puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0x30)" * (cast_expression "(undefined4 **)(puVar10 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x30)" ( (binary_expression "puVar10 + 0x30" identifier + number_literal) ))))) (ERROR "; puVar6" ; identifier) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (assignment_expression "puVar6 = (undefined4 *)*puVar6" identifier = (cast_expression "(undefined4 *)*puVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ))) (ERROR "{" {) * (cast_expression "(undefined4 *)((int)puVar22 + -0xc) = 1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar22 + -0xc) = 1" (parenthesized_expression "((int)puVar22 + -0xc)" ( (binary_expression "(int)puVar22 + -0xc" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";" ;) * (cast_expression "(undefined4 *)((int)puVar22 + -0x10) = 0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar22 + -0x10) = 0" (parenthesized_expression "((int)puVar22 + -0x10)" ( (binary_expression "(int)puVar22 + -0x10" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";" ;) * (cast_expression "(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar22 + -0x14) = &__node_gen_1" (parenthesized_expression "((int)puVar22 + -0x14)" ( (binary_expression "(int)puVar22 + -0x14" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (pointer_expression "&__node_gen_1" & identifier)))) (ERROR ";" ;) * (cast_expression "(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar22 + -0x18) = puVar6 + 1" (parenthesized_expression "((int)puVar22 + -0x18)" ( (binary_expression "(int)puVar22 + -0x18" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (binary_expression "puVar6 + 1" identifier + number_literal)))) (ERROR ";" ;) * (cast_expression "(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1" ( (type_descriptor "pointer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar22 + -0x1c) = ppuVar8 + 1" (parenthesized_expression "((int)puVar22 + -0x1c)" ( (binary_expression "(int)puVar22 + -0x1c" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = (binary_expression "ppuVar8 + 1" identifier + number_literal)))) (ERROR ";" ;) * (cast_expression "(undefined1 **)((int)puVar22 + -0x20) = local_d8" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (assignment_expression "((int)puVar22 + -0x20) = local_d8" (parenthesized_expression "((int)puVar22 + -0x20)" ( (binary_expression "(int)puVar22 + -0x20" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = identifier))) (ERROR ";" ;) * (cast_expression "(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar22 + -0x24) = 0x8e0c3" (parenthesized_expression "((int)puVar22 + -0x24)" ( (binary_expression "(int)puVar22 + -0x24" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) (ERROR ";\n                  __node_gen_1" ; identifier) . field_identifier) = (cast_expression "(__hashtable_alloc *)(ppuVar8 + 1)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar8 + 1)" ( (binary_expression "ppuVar8 + 1" identifier + 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 "puVar23 = (undefined4 *)((int)puVar22 + -4);" (assignment_expression "puVar23 = (undefined4 *)((int)puVar22 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar22 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + -4)" ( (binary_expression "(int)puVar22 + -4" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "p_Var16 = extraout_ECX_06;" (assignment_expression "p_Var16 = extraout_ECX_06" identifier = identifier) ;) (expression_statement "puVar22 = (undefined4 *)((int)puVar22 + -4);" (assignment_expression "puVar22 = (undefined4 *)((int)puVar22 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar22 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + -4)" ( (binary_expression "(int)puVar22 + -4" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (ERROR "}\n            }\n          }\n        }\n      }\n      else {\n        if (uVar21 < 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_0008e2a7:\n          *(undefined ***" ; identifier : * ( identifier * * *) )) (argument_list "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) = (binary_expression "local_a4 + -0x65e39" identifier + number_literal)) ))) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)((int)puVar23 + -0x10)" * (cast_expression "(int *)((int)puVar23 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = &UNK_0008e2c8;" (assignment_expression "*(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8" (pointer_expression "*(undefined **)((int)puVar23 + -0x14)" * (cast_expression "(undefined **)((int)puVar23 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_0008e2c8" & identifier)) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "uVar21 = uVar21 - object->local_symbol_count_;" (assignment_expression "uVar21 = uVar21 - object->local_symbol_count_" identifier = (binary_expression "uVar21 - object->local_symbol_count_" identifier - (field_expression "object->local_symbol_count_" identifier -> field_identifier))) ;) (expression_statement "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;" (field_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar2 = (object->symbols_).\n                  super__Vector_base<gold" identifier = (binary_expression "(object->symbols_).\n                  super__Vector_base<gold" (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)ppSVar2 >> 2) <= uVar21) {\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }" if (parenthesized_expression "((uint)((int)local_a0 - (int)ppSVar2 >> 2) <= uVar21)" ( (binary_expression "(uint)((int)local_a0 - (int)ppSVar2 >> 2) <= uVar21" (call_expression "(uint)((int)local_a0 - (int)ppSVar2 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_a0 - (int)ppSVar2 >> 2)" ( (binary_expression "(int)local_a0 - (int)ppSVar2 >> 2" (binary_expression "(int)local_a0 - (int)ppSVar2" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppSVar2" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;\n          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;\n          gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));\n        }" { (expression_statement "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;" (assignment_expression "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc" (pointer_expression "*(undefined ***)((int)puVar23 + -8)" * (cast_expression "(undefined ***)((int)puVar23 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65dcc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;" (assignment_expression "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b" (pointer_expression "*(int *)((int)puVar23 + -0x10)" * (cast_expression "(int *)((int)puVar23 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e7c4;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                     *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "src_id_1.first = (Relobj *)ppSVar2[uVar21];" (assignment_expression "src_id_1.first = (Relobj *)ppSVar2[uVar21]" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)ppSVar2[uVar21]" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppSVar2[uVar21]" identifier [ identifier ]))) ;) (if_statement "if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;" 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_0008e2a7;" goto statement_identifier ;)) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\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)puVar23 + -0xc) = src_id_1.first;\n          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;\n          src_id_1.first =\n               (Relobj *)\n               gold::Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );\n        }" { (expression_statement "*(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;" (assignment_expression "*(Relobj **)((int)puVar23 + -0xc) = src_id_1.first" (pointer_expression "*(Relobj **)((int)puVar23 + -0xc)" * (cast_expression "(Relobj **)((int)puVar23 + -0xc)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id_1.first" identifier . field_identifier)) ;) (expression_statement "*(Symbol_table **)((int)puVar23 + -0x10) = symtab;" (assignment_expression "*(Symbol_table **)((int)puVar23 + -0x10) = symtab" (pointer_expression "*(Symbol_table **)((int)puVar23 + -0x10)" * (cast_expression "(Symbol_table **)((int)puVar23 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e292" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         );" (call_expression "resolve_forwards\n                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         )" identifier (argument_list "(*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)\n                         )" ( (pointer_expression "*(Symbol_table **)((int)puVar23 + -0x10)" * (cast_expression "(Symbol_table **)((int)puVar23 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol **)((int)puVar23 + -0xc)" * (cast_expression "(Symbol **)((int)puVar23 + -0xc)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (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_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar30 = false;\n          bVar32 = ((uint)local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }\n        }" { (expression_statement "local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "local_e4 = (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_e0 = ((src_id_1.first)->super_Object).compressed_sections_;" (assignment_expression "local_e0 = ((src_id_1.first)->super_Object).compressed_sections_" identifier = (field_expression "((src_id_1.first)->super_Object).compressed_sections_" (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_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;" (assignment_expression "local_ac = ((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 "local_bc = (int)&local_b4->first + (int)local_e4;" (assignment_expression "local_bc = (int)&local_b4->first + (int)local_e4" identifier = (binary_expression "(int)&local_b4->first + (int)local_e4" (cast_expression "(int)&local_b4->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_b4->first" & (field_expression "local_b4->first" identifier -> field_identifier))) + (cast_expression "(int)local_e4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);" (assignment_expression "local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4)" identifier = (binary_expression "(int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4)" (binary_expression "(int)local_b0 + (int)local_e0" (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(uint)CARRY4((uint)local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_b4,(uint)local_e4)" identifier (argument_list "((uint)local_b4,(uint)local_e4)" ( (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (expression_statement "bVar32 = ((uint)local_ac->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 "bVar32 = ((uint)local_ac->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_ac->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_ac->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_ac->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "(uint)local_ac->output_lists_[3].\n                          super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)local_ac->output_lists_[3].\n                          super__Vector_base<gold::Output_data*" (binary_expression "(uint)local_ac->output_lists_[3].\n                          super__Vector_base<gold" (cast_expression "(uint)local_ac->output_lists_[3].\n                          super__Vector_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_ac->output_lists_[3].\n                          super__Vector_base" (subscript_expression "local_ac->output_lists_[3]" (field_expression "local_ac->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 (bVar32) {\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\n            local_a8 = (Relobj *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar30 = bVar20 < 2;\n            bVar32 = bVar20 == 2;\n            if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -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 "bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;" (assignment_expression "bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf" identifier = (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_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;" (assignment_expression "local_bd = *(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 "bVar30 = bVar20 < 2;" (assignment_expression "bVar30 = bVar20 < 2" identifier = (binary_expression "bVar20 < 2" identifier < number_literal)) ;) (expression_statement "bVar32 = bVar20 == 2;" (assignment_expression "bVar32 = bVar20 == 2" identifier = (binary_expression "bVar20 == 2" identifier == number_literal)) ;) (if_statement "if (bVar32) {\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\n              bVar30 = false;\n              bVar32 = local_bf == false;\n              if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }\n            }" { (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (expression_statement "bVar32 = local_bf == false;" (assignment_expression "bVar32 = local_bf == false" identifier = (binary_expression "local_bf == false" identifier == false)) ;) (if_statement "if (!bVar32) {\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }" if (parenthesized_expression "(!bVar32)" ( (unary_expression "!bVar32" ! identifier) )) (compound_statement "{\n                if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }\n                local_a0 = symtab->icf_;\n                *(undefined4 *)((int)puVar23 + -0xc) = 1;\n                *(undefined4 *)((int)puVar23 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;\n                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;\n                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\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<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                          ();\n                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);\n                bVar32 = puVar23 == (undefined4 *)0x4;\n                puVar23 = (undefined4 *)((int)puVar23 + -4);\n              }" { (if_statement "if (local_bd != 0) {\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }" if (parenthesized_expression "(local_bd != 0)" ( (binary_expression "local_bd != 0" identifier != number_literal) )) (compound_statement "{\n                  if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }\n                  if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }\n                }" { (if_statement "if ((*local_c4)->options_ == (General_options *)0x0) {\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }" if (parenthesized_expression "((*local_c4)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_c4)->options_ == (General_options *)0x0" (field_expression "(*local_c4)->options_" (parenthesized_expression "(*local_c4)" ( (pointer_expression "*local_c4" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    *(undefined4 *)((int)puVar23 + -4) = 0;\n                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;\n                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    /* WARNING: Subroutine does not return */\n                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;\n                    gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));\n                  }" { (expression_statement "*(undefined4 *)((int)puVar23 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar23 + -4) = 0" (pointer_expression "*(undefined4 *)((int)puVar23 + -4)" * (cast_expression "(undefined4 *)((int)puVar23 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -4)" ( (binary_expression "(int)puVar23 + -4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)((int)puVar23 + -8)" * (cast_expression "(undefined ***)((int)puVar23 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)((int)puVar23 + -0x10)" * (cast_expression "(int *)((int)puVar23 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8e88f;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                               *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (if_statement "if ((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {\n                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }" if (parenthesized_expression "((((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0))" ( (binary_expression "(((*local_c4)->options_->shared_).value == false) ||\n                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)" (parenthesized_expression "(((*local_c4)->options_->shared_).value == false)" ( (binary_expression "((*local_c4)->options_->shared_).value == false" (field_expression "((*local_c4)->options_->shared_).value" (parenthesized_expression "((*local_c4)->options_->shared_)" ( (field_expression "(*local_c4)->options_->shared_" (field_expression "(*local_c4)->options_" (parenthesized_expression "(*local_c4)" ( (pointer_expression "*local_c4" * identifier) )) -> field_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                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;\n                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;\n                    if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }\n                    goto _L7330;\n                  }" { (expression_statement "bVar30 = local_f0 < (_Rb_tree_header *)0x2a;" (assignment_expression "bVar30 = local_f0 < (_Rb_tree_header *)0x2a" identifier = (binary_expression "local_f0 < (_Rb_tree_header *)0x2a" identifier < (cast_expression "(_Rb_tree_header *)0x2a" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar32 = local_f0 == (_Rb_tree_header *)0x2a;" (assignment_expression "bVar32 = local_f0 == (_Rb_tree_header *)0x2a" identifier = (binary_expression "local_f0 == (_Rb_tree_header *)0x2a" identifier == (cast_expression "(_Rb_tree_header *)0x2a" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (local_f0 < (_Rb_tree_header *)0x2b) {\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }" if (parenthesized_expression "(local_f0 < (_Rb_tree_header *)0x2b)" ( (binary_expression "local_f0 < (_Rb_tree_header *)0x2b" identifier < (cast_expression "(_Rb_tree_header *)0x2b" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();\n                      return;\n                    }" { comment comment (expression_statement "(*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ();" (call_expression "(*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))\n                                ()" (parenthesized_expression "(*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4)" * (cast_expression "(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4)" ( (binary_expression "local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4" (subscript_expression "local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)]" identifier [ (cast_expression "(int)((int)(local_f0 + -0x518f) + 0x12)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)(local_f0 + -0x518f) + 0x12)" ( (binary_expression "(int)(local_f0 + -0x518f) + 0x12" (cast_expression "(int)(local_f0 + -0x518f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 + -0x518f)" ( (binary_expression "local_f0 + -0x518f" identifier + number_literal) ))) + number_literal) ))) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto _L7330;" 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)puVar23 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;" (assignment_expression "*(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3" (pointer_expression "*(__node_gen_type **)((int)puVar23 + -0x14)" * (cast_expression "(__node_gen_type **)((int)puVar23 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_3" & identifier)) ;) (expression_statement "*(Output_segment ***)((int)puVar23 + -0x18) = &local_64;" (assignment_expression "*(Output_segment ***)((int)puVar23 + -0x18) = &local_64" (pointer_expression "*(Output_segment ***)((int)puVar23 + -0x18)" * (cast_expression "(Output_segment ***)((int)puVar23 + -0x18)" ( (type_descriptor "Output_segment ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -0x18)" ( (binary_expression "(int)puVar23 + -0x18" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x1c) = __node_gen_3._M_h;" (assignment_expression "*(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h" (pointer_expression "*(__hashtable_alloc **)((int)puVar23 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)puVar23 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x1c)" ( (binary_expression "(int)puVar23 + -0x1c" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "__node_gen_3._M_h" identifier . field_identifier)) ;) (expression_statement "*(undefined1 **)((int)puVar23 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)((int)puVar23 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)((int)puVar23 + -0x20)" * (cast_expression "(undefined1 **)((int)puVar23 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x20)" ( (binary_expression "(int)puVar23 + -0x20" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x24)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x24)" ( (binary_expression "(int)puVar23 + -0x24" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_ac;" (assignment_expression "local_64 = local_ac" identifier = identifier) ;) (expression_statement "local_60 = local_a8;" (assignment_expression "local_60 = local_a8" identifier = identifier) ;) (ERROR "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::" (comma_expression "std::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n                _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , 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 "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 "bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);" (assignment_expression "bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20)" identifier = (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)puVar23 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x20)" ( (binary_expression "(int)puVar23 + -0x20" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar32 = puVar23 == (undefined4 *)0x4;" (assignment_expression "bVar32 = puVar23 == (undefined4 *)0x4" identifier = (binary_expression "puVar23 == (undefined4 *)0x4" identifier == (cast_expression "(undefined4 *)0x4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "puVar23 = (undefined4 *)((int)puVar23 + -4);" (assignment_expression "puVar23 = (undefined4 *)((int)puVar23 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar23 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -4)" ( (binary_expression "(int)puVar23 + -4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) })) }) (else_clause "else {\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }" else (compound_statement "{\n            local_bd = 0;\n            local_a8 = (Relobj *)0x0;\n            local_ac = (Output_segment *)0x0;\n          }" { (expression_statement "local_bd = 0;" (assignment_expression "local_bd = 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_ac = (Output_segment *)0x0;" (assignment_expression "local_ac = (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_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }" else (compound_statement "{\n          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_bd = 0;\n          local_a8 = (Relobj *)0x0;\n          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;\n          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);\n          bVar32 = local_b8 == 0;\n          local_bc = (int)&local_b4->first + (int)local_e4;\n          local_ac = (Output_segment *)0x0;\n        }" { (expression_statement "local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "local_e4 = (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_e0 = ((src_id_1.first)->super_Object).compressed_sections_;" (assignment_expression "local_e0 = ((src_id_1.first)->super_Object).compressed_sections_" identifier = (field_expression "((src_id_1.first)->super_Object).compressed_sections_" (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_bd = 0;" (assignment_expression "local_bd = 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 "bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))\n          ;" (assignment_expression "bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))" identifier = (binary_expression "CARRY4((uint)local_b0,(uint)local_e0) ||\n                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))" (call_expression "CARRY4((uint)local_b0,(uint)local_e0)" identifier (argument_list "((uint)local_b0,(uint)local_e0)" ( (cast_expression "(uint)local_b0" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier) ))) || (call_expression "CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))" identifier (argument_list "((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))" ( (binary_expression "(int)local_b0 + (int)local_e0" (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier)) , (cast_expression "(uint)CARRY4((uint)local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_b4,(uint)local_e4)" identifier (argument_list "((uint)local_b4,(uint)local_e4)" ( (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ))))) ;) (expression_statement "local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);" (assignment_expression "local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4)" identifier = (binary_expression "(int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4)" (binary_expression "(int)local_b0 + (int)local_e0" (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(uint)CARRY4((uint)local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_b4,(uint)local_e4)" identifier (argument_list "((uint)local_b4,(uint)local_e4)" ( (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "bVar32 = local_b8 == 0;" (assignment_expression "bVar32 = local_b8 == 0" identifier = (binary_expression "local_b8 == 0" identifier == number_literal)) ;) (expression_statement "local_bc = (int)&local_b4->first + (int)local_e4;" (assignment_expression "local_bc = (int)&local_b4->first + (int)local_e4" identifier = (binary_expression "(int)&local_b4->first + (int)local_e4" (cast_expression "(int)&local_b4->first" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_b4->first" & (field_expression "local_b4->first" identifier -> field_identifier))) + (cast_expression "(int)local_e4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_ac = (Output_segment *)0x0;" (assignment_expression "local_ac = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "_L7330:\n        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;" statement_identifier : (expression_statement "pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var13 = ((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 "p_Var16 = (_Rb_tree_header *)&DAT_00000008;" (assignment_expression "p_Var16 = (_Rb_tree_header *)&DAT_00000008" identifier = (cast_expression "(_Rb_tree_header *)&DAT_00000008" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) ;) (expression_statement "pbVar26 = (byte *)((int)local_a4 + -0x19ca26);" (assignment_expression "pbVar26 = (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_Var28 = pp_Var13;" (assignment_expression "pp_Var28 = pp_Var13" identifier = identifier) ;) (do_statement "do {\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        } while (bVar32);" do (compound_statement "{\n          if (p_Var16 == (_Rb_tree_header *)0x0) break;\n          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n          bVar30 = *pbVar26 < *(byte *)pp_Var28;\n          bVar32 = *pbVar26 == *(byte *)pp_Var28;\n          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n        }" { (if_statement "if (p_Var16 == (_Rb_tree_header *)0x0) break;" if (parenthesized_expression "(p_Var16 == (_Rb_tree_header *)0x0)" ( (binary_expression "p_Var16 == (_Rb_tree_header *)0x0" identifier == (cast_expression "(_Rb_tree_header *)0x0" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);" (assignment_expression "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" identifier = (cast_expression "(_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var16 + -1) + 0x13)" ( (binary_expression "(int)(p_Var16 + -1) + 0x13" (cast_expression "(int)(p_Var16 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var16 + -1)" ( (binary_expression "p_Var16 + -1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "bVar30 = *pbVar26 < *(byte *)pp_Var28;" (assignment_expression "bVar30 = *pbVar26 < *(byte *)pp_Var28" identifier = (binary_expression "*pbVar26 < *(byte *)pp_Var28" (pointer_expression "*pbVar26" * identifier) < (pointer_expression "*(byte *)pp_Var28" * (cast_expression "(byte *)pp_Var28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar32 = *pbVar26 == *(byte *)pp_Var28;" (assignment_expression "bVar32 = *pbVar26 == *(byte *)pp_Var28" identifier = (binary_expression "*pbVar26 == *(byte *)pp_Var28" (pointer_expression "*pbVar26" * identifier) == (pointer_expression "*(byte *)pp_Var28" * (cast_expression "(byte *)pp_Var28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);" (assignment_expression "pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var28 + (uint)bVar33 * -2 + 1)" ( (binary_expression "(int)pp_Var28 + (uint)bVar33 * -2 + 1" (binary_expression "(int)pp_Var28 + (uint)bVar33 * -2" (cast_expression "(int)pp_Var28" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar32)" ( identifier )) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar30 = (!bVar30 && !bVar32) == bVar30;" (assignment_expression "bVar30 = (!bVar30 && !bVar32) == bVar30" identifier = (binary_expression "(!bVar30 && !bVar32) == bVar30" (parenthesized_expression "(!bVar30 && !bVar32)" ( (binary_expression "!bVar30 && !bVar32" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar32" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar30) {\n          local_cc = pp_Var13 + 2;\n        }\n        else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n          local_cc = pp_Var13 + 2;\n        }" { (expression_statement "local_cc = pp_Var13 + 2;" (assignment_expression "local_cc = pp_Var13 + 2" identifier = (binary_expression "pp_Var13 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }" else (compound_statement "{\n          p_Var16 = (_Rb_tree_header *)0x7;\n          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);\n          pp_Var28 = pp_Var13;\n          do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);\n          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);\n          if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }\n          local_cc = pp_Var13;\n        }" { (expression_statement "p_Var16 = (_Rb_tree_header *)0x7;" (assignment_expression "p_Var16 = (_Rb_tree_header *)0x7" identifier = (cast_expression "(_Rb_tree_header *)0x7" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);" (assignment_expression "pbVar26 = (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_Var28 = pp_Var13;" (assignment_expression "pp_Var28 = pp_Var13" identifier = identifier) ;) (do_statement "do {\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          } while (bVar30);" do (compound_statement "{\n            if (p_Var16 == (_Rb_tree_header *)0x0) break;\n            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);\n            bVar31 = *pbVar26 < *(byte *)pp_Var28;\n            bVar30 = *pbVar26 == *(byte *)pp_Var28;\n            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;\n            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);\n          }" { (if_statement "if (p_Var16 == (_Rb_tree_header *)0x0) break;" if (parenthesized_expression "(p_Var16 == (_Rb_tree_header *)0x0)" ( (binary_expression "p_Var16 == (_Rb_tree_header *)0x0" identifier == (cast_expression "(_Rb_tree_header *)0x0" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);" (assignment_expression "p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" identifier = (cast_expression "(_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13)" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(p_Var16 + -1) + 0x13)" ( (binary_expression "(int)(p_Var16 + -1) + 0x13" (cast_expression "(int)(p_Var16 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p_Var16 + -1)" ( (binary_expression "p_Var16 + -1" identifier + number_literal) ))) + number_literal) )))) ;) (expression_statement "bVar31 = *pbVar26 < *(byte *)pp_Var28;" (assignment_expression "bVar31 = *pbVar26 < *(byte *)pp_Var28" identifier = (binary_expression "*pbVar26 < *(byte *)pp_Var28" (pointer_expression "*pbVar26" * identifier) < (pointer_expression "*(byte *)pp_Var28" * (cast_expression "(byte *)pp_Var28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar30 = *pbVar26 == *(byte *)pp_Var28;" (assignment_expression "bVar30 = *pbVar26 == *(byte *)pp_Var28" identifier = (binary_expression "*pbVar26 == *(byte *)pp_Var28" (pointer_expression "*pbVar26" * identifier) == (pointer_expression "*(byte *)pp_Var28" * (cast_expression "(byte *)pp_Var28" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);" (assignment_expression "pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var28 + (uint)bVar33 * -2 + 1)" ( (binary_expression "(int)pp_Var28 + (uint)bVar33 * -2 + 1" (binary_expression "(int)pp_Var28 + (uint)bVar33 * -2" (cast_expression "(int)pp_Var28" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);" (assignment_expression "pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var13 + 7)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var13 + 7)" ( (binary_expression "(int)pp_Var13 + 7" (cast_expression "(int)pp_Var13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((!bVar31 && !bVar30) != bVar31) {\n            pp_Var13 = local_cc;\n          }" if (parenthesized_expression "((!bVar31 && !bVar30) != bVar31)" ( (binary_expression "(!bVar31 && !bVar30) != bVar31" (parenthesized_expression "(!bVar31 && !bVar30)" ( (binary_expression "!bVar31 && !bVar30" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) != identifier) )) (compound_statement "{\n            pp_Var13 = local_cc;\n          }" { (expression_statement "pp_Var13 = local_cc;" (assignment_expression "pp_Var13 = local_cc" identifier = identifier) ;) })) (expression_statement "local_cc = pp_Var13;" (assignment_expression "local_cc = pp_Var13" identifier = identifier) ;) }))) (if_statement "if (local_be != '\0') {\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }" if (parenthesized_expression "(local_be != '\0')" ( (binary_expression "local_be != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;\n          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;\n          local_a0 = (Icf *)&src_id;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;\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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));\n          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;\n          if (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }\n          *(Icf **)((int)puVar23 + -0xc) = local_a0;\n          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;\n          src_id.first = local_e4;\n          src_id.second = (uint)local_e0;\n          local_2c = local_b4;\n          local_28._M_p = (pointer)local_b0;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;\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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));\n          if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }\n          src_id.first = *(Relobj **)prelocs;\n          src_id.second = 0;\n          puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));\n          p_Var16 = extraout_ECX_03;\n        }" { (if_statement "if (local_bd == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }" if (parenthesized_expression "(local_bd == 0)" ( (binary_expression "local_bd == 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_ac;\n            src_id.second = (uint)local_a8;\n          }" else (compound_statement "{\n            src_id.first = (Relobj *)local_ac;\n            src_id.second = (uint)local_a8;\n          }" { (expression_statement "src_id.first = (Relobj *)local_ac;" (assignment_expression "src_id.first = (Relobj *)local_ac" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_ac" ( (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)puVar23 + -0xc) = (Icf *)&src_id;" (assignment_expression "*(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id" (pointer_expression "*(Icf **)((int)puVar23 + -0xc)" * (cast_expression "(Icf **)((int)puVar23 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10) = local_c8;" (assignment_expression "*(mapped_type **)((int)puVar23 + -0x10) = local_c8" (pointer_expression "*(mapped_type **)((int)puVar23 + -0x10)" * (cast_expression "(mapped_type **)((int)puVar23 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8ddbe;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar23 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar23 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -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)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish;" (assignment_expression "ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish" identifier = (field_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl._M_finish" (field_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                    _M_impl" (parenthesized_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "local_d0->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_d0->super__Vector_base<gold::Symbol*" (binary_expression "local_d0->super__Vector_base<gold" (field_expression "local_d0->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 (ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }\n          else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }" if (parenthesized_expression "(ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage)" ( (binary_expression "ppSVar2 ==\n              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" identifier == (field_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" (field_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_d0->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_d0->super__Vector_base<gold" (field_expression "local_d0->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)puVar23 + -8) = &src_id_1;\n            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;\n            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;\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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));\n          }" { (expression_statement "*(Section_id **)((int)puVar23 + -8) = &src_id_1;" (assignment_expression "*(Section_id **)((int)puVar23 + -8) = &src_id_1" (pointer_expression "*(Section_id **)((int)puVar23 + -8)" * (cast_expression "(Section_id **)((int)puVar23 + -8)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&src_id_1" & identifier)) ;) (expression_statement "*(pointer *)((int)puVar23 + -0xc) = ppSVar2;" (assignment_expression "*(pointer *)((int)puVar23 + -0xc) = ppSVar2" (pointer_expression "*(pointer *)((int)puVar23 + -0xc)" * (cast_expression "(pointer *)((int)puVar23 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_info **)((int)puVar23 + -0x10) = local_d0;" (assignment_expression "*(Symbol_info **)((int)puVar23 + -0x10) = local_d0" (pointer_expression "*(Symbol_info **)((int)puVar23 + -0x10)" * (cast_expression "(Symbol_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e423" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8));" (binary_expression "Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8))" (binary_expression "Symbol*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(Symbol ***)((int)puVar23 + -0xc),\n                       *(Symbol ***)((int)puVar23 + -8)" (binary_expression "(iterator)*(Symbol ***)((int)puVar23 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(Symbol ***)((int)puVar23 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)puVar23 + -8)" * (cast_expression "(Symbol ***)((int)puVar23 + -8)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;) }) (else_clause "else {\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }" else (compound_statement "{\n            *ppSVar2 = (Symbol *)src_id_1.first;\n            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;\n          }" { (expression_statement "*ppSVar2 = (Symbol *)src_id_1.first;" (assignment_expression "*ppSVar2 = (Symbol *)src_id_1.first" (pointer_expression "*ppSVar2" * 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_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1;" (assignment_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar2 + 1" (field_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" (field_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_d0->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_d0->super__Vector_base<gold" (field_expression "local_d0->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 "ppSVar2 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(Icf **)((int)puVar23 + -0xc) = local_a0;" (assignment_expression "*(Icf **)((int)puVar23 + -0xc) = local_a0" (pointer_expression "*(Icf **)((int)puVar23 + -0xc)" * (cast_expression "(Icf **)((int)puVar23 + -0xc)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Addend_info **)((int)puVar23 + -0x10) = local_e8;" (assignment_expression "*(Addend_info **)((int)puVar23 + -0x10) = local_e8" (pointer_expression "*(Addend_info **)((int)puVar23 + -0x10)" * (cast_expression "(Addend_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = local_e4;" (assignment_expression "src_id.first = local_e4" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;) (expression_statement "src_id.second = (uint)local_e0;" (assignment_expression "src_id.second = (uint)local_e0" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_2c = local_b4;" (assignment_expression "local_2c = local_b4" identifier = identifier) ;) (expression_statement "local_28._M_p = (pointer)local_b0;" (assignment_expression "local_28._M_p = (pointer)local_b0" (field_expression "local_28._M_p" identifier . field_identifier) = (cast_expression "(pointer)local_b0" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8de17" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar23 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc)" (pointer_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar23 + -0x10)" * (call_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc)" * (call_expression "(pair<long_long_int,_long_long_int> **)((int)puVar23 + -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)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;)) (if_statement "if (*(int *)(prelocs + 4) != 0) {\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }" if (parenthesized_expression "(*(int *)(prelocs + 4) != 0)" ( (binary_expression "*(int *)(prelocs + 4) != 0" (pointer_expression "*(int *)(prelocs + 4)" * (cast_expression "(int *)(prelocs + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(prelocs + 4)" ( (binary_expression "prelocs + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;\n            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;\n            gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));\n          }" { (expression_statement "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;" (assignment_expression "*(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70" (pointer_expression "*(undefined ***)((int)puVar23 + -8)" * (cast_expression "(undefined ***)((int)puVar23 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x65b70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)puVar23 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar23 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;" (assignment_expression "*(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3" (pointer_expression "*(undefined ***)((int)puVar23 + -0x10)" * (cast_expression "(undefined ***)((int)puVar23 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_a4 + -0x672d3" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e803" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "gold::do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8));" (call_expression "do_gold_unreachable\n                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8))" identifier (argument_list "(*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),\n                       *(char **)((int)puVar23 + -8))" ( (pointer_expression "*(char **)((int)puVar23 + -0x10)" * (cast_expression "(char **)((int)puVar23 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar23 + -0xc)" * (cast_expression "(int *)((int)puVar23 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar23 + -8)" * (cast_expression "(char **)((int)puVar23 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (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))) ;) (expression_statement "src_id.second = 0;" (assignment_expression "src_id.second = 0" (field_expression "src_id.second" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;" (assignment_expression "puVar1 = (local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_d4->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_d4->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_d4->\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)) ;) (if_statement "if (puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Icf **)((int)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }\n          else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }" if (parenthesized_expression "(puVar1 == (local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar1 == (local_d4->\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_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_d4->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_d4->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_d4->\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)puVar23 + -8) = local_a0;\n            *(pointer *)((int)puVar23 + -0xc) = puVar1;\n            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;\n            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;\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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8));\n          }" { (expression_statement "*(Icf **)((int)puVar23 + -8) = local_a0;" (assignment_expression "*(Icf **)((int)puVar23 + -8) = local_a0" (pointer_expression "*(Icf **)((int)puVar23 + -8)" * (cast_expression "(Icf **)((int)puVar23 + -8)" ( (type_descriptor "Icf **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)puVar23 + -0xc) = puVar1;" (assignment_expression "*(pointer *)((int)puVar23 + -0xc) = puVar1" (pointer_expression "*(pointer *)((int)puVar23 + -0xc)" * (cast_expression "(pointer *)((int)puVar23 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Offset_info **)((int)puVar23 + -0x10) = local_d4;" (assignment_expression "*(Offset_info **)((int)puVar23 + -0x10) = local_d4" (pointer_expression "*(Offset_info **)((int)puVar23 + -0x10)" * (cast_expression "(Offset_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Offset_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8e445" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8))" ( (comma_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8)" (pointer_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar23 + -0x10)" * (call_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(ulonglong **)((int)puVar23 + -0xc),\n                       *(ulonglong **)((int)puVar23 + -8)" (binary_expression "(iterator)*(ulonglong **)((int)puVar23 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(ulonglong **)((int)puVar23 + -0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulonglong **)((int)puVar23 + -8)" * (cast_expression "(ulonglong **)((int)puVar23 + -8)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -8)" ( (binary_expression "(int)puVar23 + -8" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }" else (compound_statement "{\n            *(Relobj **)puVar1 = *(Relobj **)prelocs;\n            *(undefined4 *)((int)puVar1 + 4) = 0;\n            (local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;\n          }" { (expression_statement "*(Relobj **)puVar1 = *(Relobj **)prelocs;" (assignment_expression "*(Relobj **)puVar1 = *(Relobj **)prelocs" (pointer_expression "*(Relobj **)puVar1" * (cast_expression "(Relobj **)puVar1" ( (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)puVar1 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar1 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar1 + 4)" * (cast_expression "(undefined4 *)((int)puVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar1 + 4)" ( (binary_expression "(int)puVar1 + 4" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1;" (assignment_expression "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar1 + 1" (field_expression "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_d4->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_d4->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_d4->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_d4->\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 "puVar1 + 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)puVar23 + -0xc) = &dst_id;" (assignment_expression "*(Section_id **)((int)puVar23 + -0xc) = &dst_id" (pointer_expression "*(Section_id **)((int)puVar23 + -0xc)" * (cast_expression "(Section_id **)((int)puVar23 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&dst_id" & identifier)) ;) (expression_statement "*(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;" (assignment_expression "*(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec" (pointer_expression "*(Reloc_addend_size_info **)((int)puVar23 + -0x10)" * (cast_expression "(Reloc_addend_size_info **)((int)puVar23 + -0x10)" ( (type_descriptor "Reloc_addend_size_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (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>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -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>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc));" (binary_expression "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc))" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc))" ( (comma_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)\n                     ,*(uint **)((int)puVar23 + -0xc)" (pointer_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)" * (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -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)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)puVar23 + -0xc)" * (cast_expression "(uint **)((int)puVar23 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0xc)" ( (binary_expression "(int)puVar23 + -0xc" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (expression_statement "p_Var16 = extraout_ECX_03;" (assignment_expression "p_Var16 = extraout_ECX_03" identifier = identifier) ;) })) (expression_statement "puVar22 = puVar23;" (assignment_expression "puVar22 = puVar23" identifier = identifier) ;) (if_statement "if (local_bd != 0) goto LAB_0008de7e;" if (parenthesized_expression "(local_bd != 0)" ( (binary_expression "local_bd != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008de7e;" goto statement_identifier ;)) }) (ERROR "LAB_0008db0d:\n      local_dc = local_dc + 1;\n      prelocs = prelocs + 0x18;\n    } while (reloc_count != local_dc" 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_f8) {\n    *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc0a;\n    operator_delete(*(void **)((int)puVar23 + -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_f8)" ( (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_f8)" ( (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_f8" (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)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc0a;\n    operator_delete(*(void **)((int)puVar23 + -0x10));\n  }" { (expression_statement "*(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar23 + -0x10)" * (cast_expression "(pointer *)((int)puVar23 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (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)puVar23 + -0x14) = 0x8dc0a;" (assignment_expression "*(undefined4 *)((int)puVar23 + -0x14) = 0x8dc0a" (pointer_expression "*(undefined4 *)((int)puVar23 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar23 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + -0x14)" ( (binary_expression "(int)puVar23 + -0x14" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar23 + -0x10));" (call_expression "operator_delete(*(void **)((int)puVar23 + -0x10))" identifier (argument_list "(*(void **)((int)puVar23 + -0x10))" ( (pointer_expression "*(void **)((int)puVar23 + -0x10)" * (cast_expression "(void **)((int)puVar23 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar23 + -0x10)" ( (binary_expression "(int)puVar23 + -0x10" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (return_statement "return;" return ;) }))
(translation_unit "void FUN_0008d8c0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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  undefined **ppuVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  code *pcVar5;\n  uint **ppuVar6;\n  size_t sVar7;\n  uint uVar8;\n  byte *pbVar9;\n  undefined **extraout_ECX;\n  undefined **extraout_ECX_00;\n  undefined **extraout_ECX_01;\n  undefined **extraout_ECX_02;\n  undefined **ppuVar10;\n  undefined **extraout_ECX_03;\n  undefined **ppuVar11;\n  undefined **extraout_ECX_04;\n  undefined **extraout_ECX_05;\n  undefined **ppuVar12;\n  undefined **extraout_ECX_06;\n  undefined **extraout_ECX_07;\n  undefined **extraout_ECX_08;\n  undefined **extraout_ECX_09;\n  int iVar13;\n  undefined **extraout_ECX_10;\n  byte bVar14;\n  uint uVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint *puVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_fc [4];\n  byte *local_f8;\n  undefined ***local_f4;\n  undefined **local_f0;\n  int local_ec;\n  int local_e8;\n  uint *local_e4;\n  uint local_e0;\n  int local_dc;\n  undefined1 *local_d8;\n  undefined **local_d4;\n  int local_d0;\n  byte *local_cc;\n  int local_c8;\n  int *local_c4;\n  char local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint *local_ac;\n  uint *local_a8;\n  undefined **local_a4;\n  uint **local_a0;\n  int local_9c;\n  undefined **local_98;\n  undefined1 local_94 [8];\n  uint **local_8c;\n  uint **local_88;\n  undefined **local_84 [3];\n  undefined **local_78;\n  uint **local_74;\n  uint **local_70;\n  uint *local_6c;\n  uint local_68;\n  uint *local_64;\n  uint *local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_c4 = &DAT_005ea7c8;\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }\n  pbVar20 = local_4c[0];\n  iVar13 = *local_c4;\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }\n  local_bf = '\0';\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }\n  if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }\n  return;\n}\n\n" (function_definition "void FUN_0008d8c0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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  undefined **ppuVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  code *pcVar5;\n  uint **ppuVar6;\n  size_t sVar7;\n  uint uVar8;\n  byte *pbVar9;\n  undefined **extraout_ECX;\n  undefined **extraout_ECX_00;\n  undefined **extraout_ECX_01;\n  undefined **extraout_ECX_02;\n  undefined **ppuVar10;\n  undefined **extraout_ECX_03;\n  undefined **ppuVar11;\n  undefined **extraout_ECX_04;\n  undefined **extraout_ECX_05;\n  undefined **ppuVar12;\n  undefined **extraout_ECX_06;\n  undefined **extraout_ECX_07;\n  undefined **extraout_ECX_08;\n  undefined **extraout_ECX_09;\n  int iVar13;\n  undefined **extraout_ECX_10;\n  byte bVar14;\n  uint uVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint *puVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_fc [4];\n  byte *local_f8;\n  undefined ***local_f4;\n  undefined **local_f0;\n  int local_ec;\n  int local_e8;\n  uint *local_e4;\n  uint local_e0;\n  int local_dc;\n  undefined1 *local_d8;\n  undefined **local_d4;\n  int local_d0;\n  byte *local_cc;\n  int local_c8;\n  int *local_c4;\n  char local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint *local_ac;\n  uint *local_a8;\n  undefined **local_a4;\n  uint **local_a0;\n  int local_9c;\n  undefined **local_98;\n  undefined1 local_94 [8];\n  uint **local_8c;\n  uint **local_88;\n  undefined **local_84 [3];\n  undefined **local_78;\n  uint **local_74;\n  uint **local_70;\n  uint *local_6c;\n  uint local_68;\n  uint *local_64;\n  uint *local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_c4 = &DAT_005ea7c8;\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }\n  pbVar20 = local_4c[0];\n  iVar13 = *local_c4;\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }\n  local_bf = '\0';\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }\n  if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0008d8c0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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,uint *param_4,uint *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 "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint *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  undefined **ppuVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  code *pcVar5;\n  uint **ppuVar6;\n  size_t sVar7;\n  uint uVar8;\n  byte *pbVar9;\n  undefined **extraout_ECX;\n  undefined **extraout_ECX_00;\n  undefined **extraout_ECX_01;\n  undefined **extraout_ECX_02;\n  undefined **ppuVar10;\n  undefined **extraout_ECX_03;\n  undefined **ppuVar11;\n  undefined **extraout_ECX_04;\n  undefined **extraout_ECX_05;\n  undefined **ppuVar12;\n  undefined **extraout_ECX_06;\n  undefined **extraout_ECX_07;\n  undefined **extraout_ECX_08;\n  undefined **extraout_ECX_09;\n  int iVar13;\n  undefined **extraout_ECX_10;\n  byte bVar14;\n  uint uVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint *puVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_fc [4];\n  byte *local_f8;\n  undefined ***local_f4;\n  undefined **local_f0;\n  int local_ec;\n  int local_e8;\n  uint *local_e4;\n  uint local_e0;\n  int local_dc;\n  undefined1 *local_d8;\n  undefined **local_d4;\n  int local_d0;\n  byte *local_cc;\n  int local_c8;\n  int *local_c4;\n  char local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint *local_ac;\n  uint *local_a8;\n  undefined **local_a4;\n  uint **local_a0;\n  int local_9c;\n  undefined **local_98;\n  undefined1 local_94 [8];\n  uint **local_8c;\n  uint **local_88;\n  undefined **local_84 [3];\n  undefined **local_78;\n  uint **local_74;\n  uint **local_70;\n  uint *local_6c;\n  uint local_68;\n  uint *local_64;\n  uint *local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_c4 = &DAT_005ea7c8;\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }\n  pbVar20 = local_4c[0];\n  iVar13 = *local_c4;\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }\n  local_bf = '\0';\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }\n  if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }\n  return;\n}" { (declaration "undefined **ppuVar1;" type_identifier (pointer_declarator "**ppuVar1" * (pointer_declarator "*ppuVar1" * identifier)) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined **extraout_ECX;" type_identifier (pointer_declarator "**extraout_ECX" * (pointer_declarator "*extraout_ECX" * identifier)) ;) (declaration "undefined **extraout_ECX_00;" type_identifier (pointer_declarator "**extraout_ECX_00" * (pointer_declarator "*extraout_ECX_00" * identifier)) ;) (declaration "undefined **extraout_ECX_01;" type_identifier (pointer_declarator "**extraout_ECX_01" * (pointer_declarator "*extraout_ECX_01" * identifier)) ;) (declaration "undefined **extraout_ECX_02;" type_identifier (pointer_declarator "**extraout_ECX_02" * (pointer_declarator "*extraout_ECX_02" * identifier)) ;) (declaration "undefined **ppuVar10;" type_identifier (pointer_declarator "**ppuVar10" * (pointer_declarator "*ppuVar10" * identifier)) ;) (declaration "undefined **extraout_ECX_03;" type_identifier (pointer_declarator "**extraout_ECX_03" * (pointer_declarator "*extraout_ECX_03" * identifier)) ;) (declaration "undefined **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "undefined **extraout_ECX_04;" type_identifier (pointer_declarator "**extraout_ECX_04" * (pointer_declarator "*extraout_ECX_04" * identifier)) ;) (declaration "undefined **extraout_ECX_05;" type_identifier (pointer_declarator "**extraout_ECX_05" * (pointer_declarator "*extraout_ECX_05" * identifier)) ;) (declaration "undefined **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "undefined **extraout_ECX_06;" type_identifier (pointer_declarator "**extraout_ECX_06" * (pointer_declarator "*extraout_ECX_06" * identifier)) ;) (declaration "undefined **extraout_ECX_07;" type_identifier (pointer_declarator "**extraout_ECX_07" * (pointer_declarator "*extraout_ECX_07" * identifier)) ;) (declaration "undefined **extraout_ECX_08;" type_identifier (pointer_declarator "**extraout_ECX_08" * (pointer_declarator "*extraout_ECX_08" * identifier)) ;) (declaration "undefined **extraout_ECX_09;" type_identifier (pointer_declarator "**extraout_ECX_09" * (pointer_declarator "*extraout_ECX_09" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined **extraout_ECX_10;" type_identifier (pointer_declarator "**extraout_ECX_10" * (pointer_declarator "*extraout_ECX_10" * identifier)) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined **ppuVar19;" type_identifier (pointer_declarator "**ppuVar19" * (pointer_declarator "*ppuVar19" * identifier)) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * 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 "undefined1 auStack_fc [4];" type_identifier (array_declarator "auStack_fc [4]" identifier [ number_literal ]) ;) (declaration "byte *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "undefined ***local_f4;" type_identifier (pointer_declarator "***local_f4" * (pointer_declarator "**local_f4" * (pointer_declarator "*local_f4" * identifier))) ;) (declaration "undefined **local_f0;" type_identifier (pointer_declarator "**local_f0" * (pointer_declarator "*local_f0" * identifier)) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "uint *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "uint local_e0;" type_identifier identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "undefined1 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "undefined **local_d4;" type_identifier (pointer_declarator "**local_d4" * (pointer_declarator "*local_d4" * identifier)) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "byte *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "int *local_c4;" primitive_type (pointer_declarator "*local_c4" * identifier) ;) (declaration "char local_bf;" primitive_type identifier ;) (declaration "char local_be;" primitive_type identifier ;) (declaration "byte local_bd;" type_identifier identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "uint local_b4;" type_identifier identifier ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "uint *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "uint *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 "uint **local_a0;" type_identifier (pointer_declarator "**local_a0" * (pointer_declarator "*local_a0" * identifier)) ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "undefined **local_98;" type_identifier (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)) ;) (declaration "undefined1 local_94 [8];" type_identifier (array_declarator "local_94 [8]" identifier [ number_literal ]) ;) (declaration "uint **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "uint **local_88;" type_identifier (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier)) ;) (declaration "undefined **local_84 [3];" type_identifier (pointer_declarator "**local_84 [3]" * (pointer_declarator "*local_84 [3]" * (array_declarator "local_84 [3]" identifier [ number_literal ]))) ;) (declaration "undefined **local_78;" type_identifier (pointer_declarator "**local_78" * (pointer_declarator "*local_78" * identifier)) ;) (declaration "uint **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "uint **local_70;" type_identifier (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "uint *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "uint *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uint *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "byte *local_4c [2];" type_identifier (pointer_declarator "*local_4c [2]" * (array_declarator "local_4c [2]" identifier [ number_literal ])) ;) (declaration "byte local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "uint *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier 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_c4 = &DAT_005ea7c8;" (assignment_expression "local_c4 = &DAT_005ea7c8" identifier = (pointer_expression "&DAT_005ea7c8" & identifier)) ;) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (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) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" { (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 *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" ( (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x5934" (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) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }" { (expression_statement "local_f8 = local_44;" (assignment_expression "local_f8 = local_44" identifier = identifier) ;) (expression_statement "local_4c[0] = local_f8;" (assignment_expression "local_4c[0] = local_f8" (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 "puVar17 = auStack_fc;" (assignment_expression "puVar17 = auStack_fc" identifier = identifier) ;) (expression_statement "ppuVar10 = extraout_ECX_01;" (assignment_expression "ppuVar10 = extraout_ECX_01" identifier = identifier) ;) }) (else_clause "else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" else (compound_statement "{\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" { (expression_statement "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_4 + 0x40))" ( (pointer_expression "**(code **)(*param_4 + 0x40)" * (pointer_expression "*(code **)(*param_4 + 0x40)" * (cast_expression "(code **)(*param_4 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_4 + 0x40)" ( (binary_expression "*param_4 + 0x40" (pointer_expression "*param_4" * identifier) + number_literal) ))))) )) (argument_list "(local_4c,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_f8 = local_44;" (assignment_expression "local_f8 = local_44" identifier = identifier) ;) (expression_statement "puVar17 = &stack0xffffff00;" (assignment_expression "puVar17 = &stack0xffffff00" identifier = (pointer_expression "&stack0xffffff00" & identifier)) ;) (expression_statement "ppuVar10 = extraout_ECX;" (assignment_expression "ppuVar10 = extraout_ECX" identifier = identifier) ;) }))) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (if_statement "if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar13 + 8) == 0)" ( (binary_expression "*(int *)(iVar13 + 8) == 0" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }" { (expression_statement "*(undefined ***)(puVar17 + -4) = ppuVar10;" (assignment_expression "*(undefined ***)(puVar17 + -4) = ppuVar10" (pointer_expression "*(undefined ***)(puVar17 + -4)" * (cast_expression "(undefined ***)(puVar17 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -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 *)(puVar17 + -0x14) = 0x8e857;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e857" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar13 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar13 + 8) + 0x5934" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }" { (labeled_statement "LAB_0008d94f:\n    local_be = '\0';" statement_identifier : (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_d4 = (undefined **)0x0;" (assignment_expression "local_d4 = (undefined **)0x0" identifier = (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" else (compound_statement "{\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" { (expression_statement "local_a8 = &local_2c;" (assignment_expression "local_a8 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" identifier = identifier) ;) (expression_statement "pbVar9 = (byte *)0xffffffff;" (assignment_expression "pbVar9 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }" if (parenthesized_expression "(local_4c[0] != (byte *)0x0)" ( (binary_expression "local_4c[0] != (byte *)0x0" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }" { (expression_statement "*(byte **)(puVar17 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar17 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar17 + -0x10)" * (cast_expression "(byte **)(puVar17 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e647;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e647" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar7 = strlen(*(char **)(puVar17 + -0x10));" (assignment_expression "sVar7 = strlen(*(char **)(puVar17 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar17 + -0x10))" identifier (argument_list "(*(char **)(puVar17 + -0x10))" ( (pointer_expression "*(char **)(puVar17 + -0x10)" * (cast_expression "(char **)(puVar17 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "pbVar9 = pbVar20 + sVar7;" (assignment_expression "pbVar9 = pbVar20 + sVar7" identifier = (binary_expression "pbVar20 + sVar7" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" * (cast_expression "(undefined4 *)(puVar17 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar17 + -8) = pbVar9;" (assignment_expression "*(byte **)(puVar17 + -8) = pbVar9" (pointer_expression "*(byte **)(puVar17 + -8)" * (cast_expression "(byte **)(puVar17 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar17 + -0xc)" * (cast_expression "(byte **)(puVar17 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar17 + -0x10) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0x10) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0x10)" * (cast_expression "(uint ***)(puVar17 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e65f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e65f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = 5;" (assignment_expression "iVar13 = 5" identifier = number_literal) ;) (expression_statement "bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;" (assignment_expression "bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10" identifier = (binary_expression "(undefined1 *)0xffffffef < puVar17 + -0x10" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar17 + -0x10" identifier + number_literal))) ;) (expression_statement "bVar24 = puVar17 == (undefined1 *)0x0;" (assignment_expression "bVar24 = puVar17 == (undefined1 *)0x0" identifier = (binary_expression "puVar17 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "ppuVar10 = local_a4 + -0x67293;" (assignment_expression "ppuVar10 = local_a4 + -0x67293" identifier = (binary_expression "local_a4 + -0x67293" identifier + number_literal)) ;) (expression_statement "puVar18 = local_34;" (assignment_expression "puVar18 = local_34" identifier = identifier) ;) (do_statement "do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);" do (compound_statement "{\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;" (assignment_expression "bVar22 = *(byte *)ppuVar10 < (byte)*puVar18" identifier = (binary_expression "*(byte *)ppuVar10 < (byte)*puVar18" (pointer_expression "*(byte *)ppuVar10" * (cast_expression "(byte *)ppuVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;" (assignment_expression "bVar24 = *(byte *)ppuVar10 == (byte)*puVar18" identifier = (binary_expression "*(byte *)ppuVar10 == (byte)*puVar18" (pointer_expression "*(byte *)ppuVar10" * (cast_expression "(byte *)ppuVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar10 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar10 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar10" ( (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 "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "(int)puVar18 + (uint)bVar25 * -2" (cast_expression "(int)puVar18" ( (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) )))) ;) }) 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      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }" { (expression_statement "ppuVar10 = (undefined **)0xf;" (assignment_expression "ppuVar10 = (undefined **)0xf" identifier = (cast_expression "(undefined **)0xf" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19ca46);" (assignment_expression "pbVar20 = (byte *)((int)local_a4 + -0x19ca46)" identifier = (cast_expression "(byte *)((int)local_a4 + -0x19ca46)" ( (type_descriptor "byte *" 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 "puVar18 = local_34;" (assignment_expression "puVar18 = local_34" identifier = identifier) ;) (do_statement "do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);" do (compound_statement "{\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar23 = *pbVar20 < (byte)*puVar18;" (assignment_expression "bVar23 = *pbVar20 < (byte)*puVar18" identifier = (binary_expression "*pbVar20 < (byte)*puVar18" (pointer_expression "*pbVar20" * identifier) < (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar22 = *pbVar20 == (byte)*puVar18;" (assignment_expression "bVar22 = *pbVar20 == (byte)*puVar18" identifier = (binary_expression "*pbVar20 == (byte)*puVar18" (pointer_expression "*pbVar20" * identifier) == (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (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)) ;) (expression_statement "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "(int)puVar18 + (uint)bVar25 * -2" (cast_expression "(int)puVar18" ( (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) )))) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\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          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }" { (if_statement "if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" if (parenthesized_expression "(local_34 == local_a8)" ( (binary_expression "local_34 == local_a8" identifier == identifier) )) (compound_statement "{\n          iVar13 = *local_c4;\n        }" { (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) }) (else_clause "else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" else (compound_statement "{\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" { (expression_statement "*(uint **)(puVar17 + -0x10) = local_34;" (assignment_expression "*(uint **)(puVar17 + -0x10) = local_34" (pointer_expression "*(uint **)(puVar17 + -0x10)" * (cast_expression "(uint **)(puVar17 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e733;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e733" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (expression_statement "ppuVar10 = extraout_ECX_10;" (assignment_expression "ppuVar10 = extraout_ECX_10" identifier = identifier) ;) }))) (goto_statement "goto LAB_0008d94f;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }" if (parenthesized_expression "(local_34 != local_a8)" ( (binary_expression "local_34 != local_a8" identifier != identifier) )) (compound_statement "{\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }" { (expression_statement "*(uint **)(puVar17 + -0x10) = local_34;" (assignment_expression "*(uint **)(puVar17 + -0x10) = local_34" (pointer_expression "*(uint **)(puVar17 + -0x10)" * (cast_expression "(uint **)(puVar17 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e8ab" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" 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 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x15c)" * (cast_expression "(uint ***)(param_2 + 0x15c)" ( (type_descriptor "uint ***" 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 "*(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(uint ***)(puVar17 + -0x10) = local_a0 + 0x15" (pointer_expression "*(uint ***)(puVar17 + -0x10)" * (cast_expression "(uint ***)(puVar17 + -0x10)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "local_a0 + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e6d4" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_c8 = FUN_00074520();" (assignment_expression "local_c8 = FUN_00074520()" identifier = (call_expression "FUN_00074520()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_d0 = local_c8 + 0xc;" (assignment_expression "local_d0 = local_c8 + 0xc" identifier = (binary_expression "local_c8 + 0xc" identifier + number_literal)) ;) (expression_statement "local_e8 = local_c8 + 0x18;" (assignment_expression "local_e8 = local_c8 + 0x18" identifier = (binary_expression "local_c8 + 0x18" identifier + number_literal)) ;) (expression_statement "ppuVar10 = (undefined **)(local_c8 + 0x24);" (assignment_expression "ppuVar10 = (undefined **)(local_c8 + 0x24)" identifier = (cast_expression "(undefined **)(local_c8 + 0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_c8 + 0x24)" ( (binary_expression "local_c8 + 0x24" identifier + number_literal) )))) ;) (expression_statement "local_ec = local_c8 + 0x30;" (assignment_expression "local_ec = local_c8 + 0x30" identifier = (binary_expression "local_c8 + 0x30" identifier + number_literal)) ;) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" identifier = (pointer_expression "*local_c4" * identifier)) ;) (expression_statement "local_be = '\x01';" (assignment_expression "local_be = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_d4 = ppuVar10;" (assignment_expression "local_d4 = ppuVar10" identifier = identifier) ;) }))) (if_statement "if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }" if (parenthesized_expression "(*(int *)(iVar13 + 8) == 0)" ( (binary_expression "*(int *)(iVar13 + 8) == 0" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }" { (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" * (cast_expression "(undefined4 *)(puVar17 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -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 *)(puVar17 + -0x14) = 0x8e873;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e873" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_bf = '\0';" (assignment_expression "local_bf = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar13 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar13 + 8) + 0x5934" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)(puVar17 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = param_1" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e56b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e56b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_bf = FUN_000752e0();" (assignment_expression "local_bf = FUN_000752e0()" identifier = (call_expression "FUN_000752e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = local_bf == '\0';" (assignment_expression "bVar24 = local_bf == '\0'" identifier = (binary_expression "local_bf == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "ppuVar10 = extraout_ECX_09;" (assignment_expression "ppuVar10 = extraout_ECX_09" identifier = identifier) ;) (if_statement "if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "ppuVar10 = (undefined **)0xc;" (assignment_expression "ppuVar10 = (undefined **)0xc" identifier = (cast_expression "(undefined **)0xc" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_bf = '\0';" (assignment_expression "local_bf = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ppuVar19 = local_a4 + -0x66894;" (assignment_expression "ppuVar19 = local_a4 + -0x66894" identifier = (binary_expression "local_a4 + -0x66894" identifier + number_literal)) ;) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);" do (compound_statement "{\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n      }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar22 = *(byte *)ppuVar19 < *pbVar20;" (assignment_expression "bVar22 = *(byte *)ppuVar19 < *pbVar20" identifier = (binary_expression "*(byte *)ppuVar19 < *pbVar20" (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *(byte *)ppuVar19 == *pbVar20;" (assignment_expression "bVar24 = *(byte *)ppuVar19 == *pbVar20" identifier = (binary_expression "*(byte *)ppuVar19 == *pbVar20" (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar19" ( (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 "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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }" { (expression_statement "ppuVar10 = (undefined **)0x11;" (assignment_expression "ppuVar10 = (undefined **)0x11" identifier = (cast_expression "(undefined **)0x11" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a243);" (assignment_expression "pbVar20 = (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar23 = *pbVar20 < *pbVar9;" (assignment_expression "bVar23 = *pbVar20 < *pbVar9" identifier = (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" identifier = (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (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)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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)) ;) (if_statement "if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }" { (expression_statement "ppuVar10 = (undefined **)0xc;" (assignment_expression "ppuVar10 = (undefined **)0xc" identifier = (cast_expression "(undefined **)0xc" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a231);" (assignment_expression "pbVar20 = (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar24 = *pbVar20 < *pbVar9;" (assignment_expression "bVar24 = *pbVar20 < *pbVar9" identifier = (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" identifier = (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (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)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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)) ;) (if_statement "if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }" { (expression_statement "ppuVar10 = (undefined **)0x11;" (assignment_expression "ppuVar10 = (undefined **)0x11" identifier = (cast_expression "(undefined **)0x11" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppuVar19 = local_a4 + -0x66889;" (assignment_expression "ppuVar19 = local_a4 + -0x66889" identifier = (binary_expression "local_a4 + -0x66889" identifier + number_literal)) ;) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar23 = *(byte *)ppuVar19 < *pbVar20;" (assignment_expression "bVar23 = *(byte *)ppuVar19 < *pbVar20" identifier = (binary_expression "*(byte *)ppuVar19 < *pbVar20" (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *(byte *)ppuVar19 == *pbVar20;" (assignment_expression "bVar22 = *(byte *)ppuVar19 == *pbVar20" identifier = (binary_expression "*(byte *)ppuVar19 == *pbVar20" (pointer_expression "*(byte *)ppuVar19" * (cast_expression "(byte *)ppuVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" identifier = (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar19 + (uint)bVar25 * -2 + 1)" ( (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar19" ( (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 "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 "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)) ;) (if_statement "if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }" { (expression_statement "ppuVar10 = (undefined **)0x9;" (assignment_expression "ppuVar10 = (undefined **)0x9" identifier = (cast_expression "(undefined **)0x9" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a212);" (assignment_expression "pbVar20 = (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);" do (compound_statement "{\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar24 = *pbVar20 < *pbVar9;" (assignment_expression "bVar24 = *pbVar20 < *pbVar9" identifier = (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" identifier = (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (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)) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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_bf = (!bVar24 && !bVar22) != bVar24;" (assignment_expression "local_bf = (!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)) ;) })) })) })) })) })) })) (if_statement "if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }" { (expression_statement "local_cc = (byte *)0x0;" (assignment_expression "local_cc = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d8 = local_94;" (assignment_expression "local_d8 = local_94" identifier = identifier) ;) (expression_statement "local_f4 = &local_78;" (assignment_expression "local_f4 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;) (do_statement "do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);" do (compound_statement "{\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    }" { (expression_statement "local_f0 = (undefined **)param_7[2];" (assignment_expression "local_f0 = (undefined **)param_7[2]" identifier = (cast_expression "(undefined **)param_7[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_7[2]" identifier [ number_literal ]))) ;) (expression_statement "local_b0 = param_7[5];" (assignment_expression "local_b0 = param_7[5]" identifier = (subscript_expression "param_7[5]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = param_7[3];" (assignment_expression "uVar15 = param_7[3]" identifier = (subscript_expression "param_7[3]" identifier [ number_literal ])) ;) (expression_statement "local_b4 = param_7[4];" (assignment_expression "local_b4 = param_7[4]" identifier = (subscript_expression "param_7[4]" identifier [ number_literal ])) ;) (if_statement "if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" if (parenthesized_expression "(uVar15 < param_11)" ( (binary_expression "uVar15 < param_11" identifier < identifier) )) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(param_12 == 0)" ( (binary_expression "param_12 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65e39" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" 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 *)(puVar17 + -0x14) = 0x8e764;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e764" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_ac = (uint *)(param_12 + uVar15 * 0x18);" (assignment_expression "local_ac = (uint *)(param_12 + uVar15 * 0x18)" identifier = (cast_expression "(uint *)(param_12 + uVar15 * 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_12 + uVar15 * 0x18)" ( (binary_expression "param_12 + uVar15 * 0x18" identifier + (binary_expression "uVar15 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);" (assignment_expression "local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6)" identifier = (binary_expression "(uint *)(uint)*(ushort *)((int)local_ac + 6)" (cast_expression "(uint *)(uint)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)((int)local_ac + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 6)" ( (binary_expression "(int)local_ac + 6" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" if (parenthesized_expression "(local_a8 < (uint *)0xff00)" ( (binary_expression "local_a8 < (uint *)0xff00" identifier < (cast_expression "(uint *)0xff00" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }" { (labeled_statement "LAB_0008db84:\n          puVar18 = (uint *)local_ac[2];" statement_identifier : (expression_statement "puVar18 = (uint *)local_ac[2];" (assignment_expression "puVar18 = (uint *)local_ac[2]" identifier = (cast_expression "(uint *)local_ac[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_ac[2]" identifier [ number_literal ]))) ;)) (expression_statement "uVar15 = local_ac[3];" (assignment_expression "uVar15 = local_ac[3]" identifier = (subscript_expression "local_ac[3]" identifier [ number_literal ])) ;) (expression_statement "local_bc = (int)puVar18 + local_b4;" (assignment_expression "local_bc = (int)puVar18 + local_b4" identifier = (binary_expression "(int)puVar18 + local_b4" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);" (assignment_expression "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" identifier = (binary_expression "local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" (binary_expression "local_b0 + uVar15" identifier + identifier) + (cast_expression "(uint)CARRY4(local_b4,(uint)puVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)puVar18)" identifier (argument_list "(local_b4,(uint)puVar18)" ( identifier , (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (if_statement "if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }" if (parenthesized_expression "(local_be != '\0')" ( (binary_expression "local_be != '\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            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\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 "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dbe0" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (goto_statement "goto LAB_0008da46;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" else (compound_statement "{\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" { (if_statement "if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }" if (parenthesized_expression "(local_a8 == (uint *)0xffff)" ( (binary_expression "local_a8 == (uint *)0xffff" identifier == (cast_expression "(uint *)0xffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }" { (expression_statement "uVar8 = param_4[0xc];" (assignment_expression "uVar8 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (if_statement "if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }" { (expression_statement "uVar8 = *param_4;" (assignment_expression "uVar8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*(uint **)(puVar17 + -0x10) = param_4;" (assignment_expression "*(uint **)(puVar17 + -0x10) = param_4" (pointer_expression "*(uint **)(puVar17 + -0x10)" * (cast_expression "(uint **)(puVar17 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar5 = *(code **)(uVar8 + 0x6c);" (assignment_expression "pcVar5 = *(code **)(uVar8 + 0x6c)" identifier = (pointer_expression "*(code **)(uVar8 + 0x6c)" * (cast_expression "(code **)(uVar8 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x6c)" ( (binary_expression "uVar8 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e35e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e35e" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar8 = (*pcVar5)();" (assignment_expression "uVar8 = (*pcVar5)()" identifier = (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "param_4[0xc] = uVar8;" (assignment_expression "param_4[0xc] = uVar8" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "*(uint *)(puVar17 + -8) = uVar15;" (assignment_expression "*(uint *)(puVar17 + -8) = uVar15" (pointer_expression "*(uint *)(puVar17 + -8)" * (cast_expression "(uint *)(puVar17 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar17 + -0xc) = param_4;" (assignment_expression "*(uint **)(puVar17 + -0xc) = param_4" (pointer_expression "*(uint **)(puVar17 + -0xc)" * (cast_expression "(uint **)(puVar17 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar17 + -0x10) = uVar8;" (assignment_expression "*(uint *)(puVar17 + -0x10) = uVar8" (pointer_expression "*(uint *)(puVar17 + -0x10)" * (cast_expression "(uint *)(puVar17 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dc69;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dc69" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_a8 = (uint *)FUN_0028b7d0();" (assignment_expression "local_a8 = (uint *)FUN_0028b7d0()" identifier = (cast_expression "(uint *)FUN_0028b7d0()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0028b7d0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppuVar10 = extraout_ECX_02;" (assignment_expression "ppuVar10 = extraout_ECX_02" identifier = identifier) ;) (goto_statement "goto LAB_0008db84;" goto statement_identifier ;) })) (expression_statement "puVar18 = (uint *)local_ac[2];" (assignment_expression "puVar18 = (uint *)local_ac[2]" identifier = (cast_expression "(uint *)local_ac[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_ac[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = local_ac[3];" (assignment_expression "uVar15 = local_ac[3]" identifier = (subscript_expression "local_ac[3]" identifier [ number_literal ])) ;) (expression_statement "local_bc = (int)puVar18 + local_b4;" (assignment_expression "local_bc = (int)puVar18 + local_b4" identifier = (binary_expression "(int)puVar18 + local_b4" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);" (assignment_expression "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" identifier = (binary_expression "local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" (binary_expression "local_b0 + uVar15" identifier + identifier) + (cast_expression "(uint)CARRY4(local_b4,(uint)puVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)puVar18)" identifier (argument_list "(local_b4,(uint)puVar18)" ( identifier , (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (if_statement "if (local_be == '\0') goto LAB_0008db0d;" if (parenthesized_expression "(local_be == '\0')" ( (binary_expression "local_be == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008db0d;" 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 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8da41;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8da41" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (labeled_statement "LAB_0008da46:\n          local_bd = (byte)local_ac[1];" statement_identifier : (expression_statement "local_bd = (byte)local_ac[1];" (assignment_expression "local_bd = (byte)local_ac[1]" identifier = (cast_expression "(byte)local_ac[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_ac[1]" identifier [ number_literal ]))) ;)) (if_statement "if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" if (parenthesized_expression "((local_bd & 0xf) == 3)" ( (binary_expression "(local_bd & 0xf) == 3" (parenthesized_expression "(local_bd & 0xf)" ( (binary_expression "local_bd & 0xf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }" { (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (uint *)0xffffffff;" (assignment_expression "local_34 = (uint *)0xffffffff" identifier = (cast_expression "(uint *)0xffffffff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e34b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e34b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" else (compound_statement "{\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" { (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8da7c;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8da7c" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_e8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_e8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_2c = local_b4;" (assignment_expression "local_2c = local_b4" identifier = identifier) ;) (expression_statement "local_28 = local_b0;" (assignment_expression "local_28 = local_b0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8daab;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8daab" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" identifier = identifier) ;) (expression_statement "local_30 = (uint *)uVar15;" (assignment_expression "local_30 = (uint *)uVar15" identifier = (cast_expression "(uint *)uVar15" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar18 = (uint *)*param_7;" (assignment_expression "puVar18 = (uint *)*param_7" identifier = (cast_expression "(uint *)*param_7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_7" * identifier))) ;) (if_statement "if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(param_7[1] != 0)" ( (binary_expression "param_7[1] != 0" (subscript_expression "param_7[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" * (cast_expression "(undefined ***)(puVar17 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x672d3" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e7a3" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)local_d4[1];" (assignment_expression "puVar2 = (undefined4 *)local_d4[1]" identifier = (cast_expression "(undefined4 *)local_d4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d4[1]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" identifier = identifier) ;) (if_statement "if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" if (parenthesized_expression "(puVar2 == (undefined4 *)local_d4[2])" ( (binary_expression "puVar2 == (undefined4 *)local_d4[2]" identifier == (cast_expression "(undefined4 *)local_d4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d4[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }" { (expression_statement "*(uint ***)(puVar17 + -8) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -8) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -8)" * (cast_expression "(uint ***)(puVar17 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" * (cast_expression "(undefined4 **)(puVar17 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_d4;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_d4" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" * (cast_expression "(undefined ***)(puVar17 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e325;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e325" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" else (compound_statement "{\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" { (expression_statement "*puVar2 = puVar18;" (assignment_expression "*puVar2 = puVar18" (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 "local_d4[1] = (undefined *)(puVar2 + 2);" (assignment_expression "local_d4[1] = (undefined *)(puVar2 + 2)" (subscript_expression "local_d4[1]" identifier [ number_literal ]) = (cast_expression "(undefined *)(puVar2 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 2)" ( (binary_expression "puVar2 + 2" identifier + number_literal) )))) ;) }))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar17 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8db02;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8db02" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = extraout_ECX_00;" (assignment_expression "ppuVar10 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (!bVar22) goto LAB_0008db0d;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0008db0d;" goto statement_identifier ;)) }))) (if_statement "if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }" if (parenthesized_expression "(local_bf != '\0')" ( (binary_expression "local_bf != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }" { (expression_statement "local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);" (assignment_expression "local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1])" identifier = (cast_expression "(uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1])" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_a0._1_3_,(byte)local_ac[1])" identifier (argument_list "(local_a0._1_3_,(byte)local_ac[1])" ( (field_expression "local_a0._1_3_" identifier . field_identifier) , (cast_expression "(byte)local_ac[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_ac[1]" identifier [ number_literal ])) ))))) ;) (if_statement "if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }" if (parenthesized_expression "(((byte)local_ac[1] & 0xf) != 1)" ( (binary_expression "((byte)local_ac[1] & 0xf) != 1" (parenthesized_expression "((byte)local_ac[1] & 0xf)" ( (binary_expression "(byte)local_ac[1] & 0xf" (cast_expression "(byte)local_ac[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_ac[1]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }" { (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" ( (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar17 + -4) = ppuVar10;" (assignment_expression "*(undefined ***)(puVar17 + -4) = ppuVar10" (pointer_expression "*(undefined ***)(puVar17 + -4)" * (cast_expression "(undefined ***)(puVar17 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -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 *)(puVar17 + -0x14) = 0x8e81f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e81f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" if (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_c4 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }" { (expression_statement "ppuVar10 = local_f0;" (assignment_expression "ppuVar10 = local_f0" identifier = identifier) ;) (if_statement "if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }" if (parenthesized_expression "(local_f0 < (undefined **)0x2b)" ( (binary_expression "local_f0 < (undefined **)0x2b" identifier < (cast_expression "(undefined **)0x2b" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }" { (expression_statement "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" * (cast_expression "(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" ( (binary_expression "local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4" (subscript_expression "local_a4[(int)((int)local_f0 + -0x65f45)]" identifier [ (cast_expression "(int)((int)local_f0 + -0x65f45)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_f0 + -0x65f45)" ( (binary_expression "(int)local_f0 + -0x65f45" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" else (compound_statement "{\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" { (expression_statement "local_a0 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x15c)" * (cast_expression "(uint ***)(param_2 + 0x15c)" ( (type_descriptor "uint ***" 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_6c = param_4;" (assignment_expression "local_6c = param_4" identifier = identifier) ;) (expression_statement "local_68 = (uint)*(ushort *)((int)local_ac + 6);" (assignment_expression "local_68 = (uint)*(ushort *)((int)local_ac + 6)" identifier = (binary_expression "(uint)*(ushort *)((int)local_ac + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_ac + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ac + 6)" ( (binary_expression "(int)local_ac + 6" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint ****)(puVar17 + -0x14) = &local_8c;" (assignment_expression "*(uint ****)(puVar17 + -0x14) = &local_8c" (pointer_expression "*(uint ****)(puVar17 + -0x14)" * (cast_expression "(uint ****)(puVar17 + -0x14)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_8c" & identifier)) ;) (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 "*(uint ***)(puVar17 + -0x18) = &local_6c;" (assignment_expression "*(uint ***)(puVar17 + -0x18) = &local_6c" (pointer_expression "*(uint ***)(puVar17 + -0x18)" * (cast_expression "(uint ***)(puVar17 + -0x18)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(uint ***)(puVar17 + -0x1c) = local_8c;" (assignment_expression "*(uint ***)(puVar17 + -0x1c) = local_8c" (pointer_expression "*(uint ***)(puVar17 + -0x1c)" * (cast_expression "(uint ***)(puVar17 + -0x1c)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" * (cast_expression "(undefined1 **)(puVar17 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x8e203;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x8e203" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" * (cast_expression "(undefined4 *)(puVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" identifier = (binary_expression "puVar17 + -4" identifier + number_literal)) ;) (expression_statement "ppuVar10 = extraout_ECX_08;" (assignment_expression "ppuVar10 = extraout_ECX_08" identifier = identifier) ;) }))) })) })) (if_statement "if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -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_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_ac = param_4;" (assignment_expression "local_ac = param_4" identifier = identifier) ;) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (labeled_statement "LAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" statement_identifier : (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" ( (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar16 + -8)" * (cast_expression "(undefined ***)(puVar16 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar16 + -0x10)" * (cast_expression "(int *)(puVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -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 *)(puVar16 + -0x14) = 0x8e782;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x8e782" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*local_c4 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }" { (expression_statement "local_5c = param_4;" (assignment_expression "local_5c = param_4" identifier = identifier) ;) (expression_statement "ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);" (assignment_expression "ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14)" identifier = (cast_expression "(undefined **)(*(int *)(param_2 + 0x158) + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x14)" ( (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_ac;" (assignment_expression "local_54 = local_ac" identifier = identifier) ;) (expression_statement "local_50 = local_a8;" (assignment_expression "local_50 = local_a8" identifier = identifier) ;) (expression_statement "ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" identifier = (pointer_expression "*(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" * (cast_expression "(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (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 "ppuVar12 = ppuVar10;" (assignment_expression "ppuVar12 = ppuVar10" identifier = identifier) ;) (if_statement "if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" if (parenthesized_expression "(ppuVar19 == (undefined **)0x0)" ( (binary_expression "ppuVar19 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }" { (labeled_statement "LAB_0008df10:\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 "*(uint ****)(puVar16 + -0x10) = &local_74;" (assignment_expression "*(uint ****)(puVar16 + -0x10) = &local_74" (pointer_expression "*(uint ****)(puVar16 + -0x10)" * (cast_expression "(uint ****)(puVar16 + -0x10)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x8df2b;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x8df2b" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar11 = local_98;" (assignment_expression "ppuVar11 = local_98" identifier = identifier) ;) }) (else_clause "else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" else (compound_statement "{\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" { (do_statement "do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);" do (compound_statement "{\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              }" { (while_statement "while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }" while (parenthesized_expression "((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))))" ( (parenthesized_expression "(ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))" ( (comma_expression "ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" (assignment_expression "ppuVar11 = ppuVar19" identifier = identifier) , (binary_expression "param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" (binary_expression "param_4 <= ppuVar11[4]" identifier <= (subscript_expression "ppuVar11[4]" identifier [ number_literal ])) && (parenthesized_expression "((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" ( (parenthesized_expression "(param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))" ( (binary_expression "param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])" (binary_expression "param_4 != (uint *)ppuVar11[4]" identifier != (cast_expression "(uint *)ppuVar11[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar11[4]" identifier [ number_literal ]))) || (parenthesized_expression "(param_5 <= ppuVar11[5])" ( (binary_expression "param_5 <= ppuVar11[5]" identifier <= (subscript_expression "ppuVar11[5]" identifier [ number_literal ])) ))) )) )))) )) )) (compound_statement "{\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }" { (expression_statement "ppuVar19 = (undefined **)ppuVar11[2];" (assignment_expression "ppuVar19 = (undefined **)ppuVar11[2]" identifier = (cast_expression "(undefined **)ppuVar11[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar11[2]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" identifier = identifier) ;) (if_statement "if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;" if (parenthesized_expression "((undefined **)ppuVar11[2] == (undefined **)0x0)" ( (binary_expression "(undefined **)ppuVar11[2] == (undefined **)0x0" (cast_expression "(undefined **)ppuVar11[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar11[2]" identifier [ number_literal ])) == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0008defa;" goto statement_identifier ;)) })) (expression_statement "ppuVar1 = ppuVar11 + 3;" (assignment_expression "ppuVar1 = ppuVar11 + 3" identifier = (binary_expression "ppuVar11 + 3" identifier + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)*ppuVar1;" (assignment_expression "ppuVar19 = (undefined **)*ppuVar1" identifier = (cast_expression "(undefined **)*ppuVar1" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppuVar1" * identifier))) ;) (expression_statement "ppuVar11 = ppuVar12;" (assignment_expression "ppuVar11 = ppuVar12" identifier = identifier) ;) }) while (parenthesized_expression "((undefined **)*ppuVar1 != (undefined **)0x0)" ( (binary_expression "(undefined **)*ppuVar1 != (undefined **)0x0" (cast_expression "(undefined **)*ppuVar1" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppuVar1" * identifier)) != (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (labeled_statement "LAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;" statement_identifier : (if_statement "if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;" if (parenthesized_expression "(((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5]))))" ( (binary_expression "((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))" (parenthesized_expression "((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4]))" ( (binary_expression "(ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])" (parenthesized_expression "(ppuVar10 == ppuVar11)" ( (binary_expression "ppuVar10 == ppuVar11" identifier == identifier) )) || (parenthesized_expression "(param_4 < ppuVar11[4])" ( (binary_expression "param_4 < ppuVar11[4]" identifier < (subscript_expression "ppuVar11[4]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))" ( (parenthesized_expression "(param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5]))" ( (binary_expression "param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])" (binary_expression "param_4 == (uint *)ppuVar11[4]" identifier == (cast_expression "(uint *)ppuVar11[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar11[4]" identifier [ number_literal ]))) && (parenthesized_expression "(param_5 < ppuVar11[5])" ( (binary_expression "param_5 < ppuVar11[5]" identifier < (subscript_expression "ppuVar11[5]" identifier [ number_literal ])) ))) )) ))) )) (goto_statement "goto LAB_0008df10;" goto statement_identifier ;))) }))) (expression_statement "local_78 = ppuVar11 + 6;" (assignment_expression "local_78 = ppuVar11 + 6" identifier = (binary_expression "ppuVar11 + 6" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ****)(puVar16 + -0x14) = local_f4;" (assignment_expression "*(undefined ****)(puVar16 + -0x14) = local_f4" (pointer_expression "*(undefined ****)(puVar16 + -0x14)" * (cast_expression "(undefined ****)(puVar16 + -0x14)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar16 + -0x18) = &local_54;" (assignment_expression "*(uint ***)(puVar16 + -0x18) = &local_54" (pointer_expression "*(uint ***)(puVar16 + -0x18)" * (cast_expression "(uint ***)(puVar16 + -0x18)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(undefined ***)(puVar16 + -0x1c) = local_78;" (assignment_expression "*(undefined ***)(puVar16 + -0x1c) = local_78" (pointer_expression "*(undefined ***)(puVar16 + -0x1c)" * (cast_expression "(undefined ***)(puVar16 + -0x1c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar16 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar16 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar16 + -0x20)" * (cast_expression "(undefined1 **)(puVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x20)" ( (binary_expression "puVar16 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x24) = 0x8df57;" (assignment_expression "*(undefined4 *)(puVar16 + -0x24) = 0x8df57" (pointer_expression "*(undefined4 *)(puVar16 + -0x24)" * (cast_expression "(undefined4 *)(puVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x24)" ( (binary_expression "puVar16 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3 = *(int **)(*local_c4 + 0xc);" (assignment_expression "piVar3 = *(int **)(*local_c4 + 0xc)" identifier = (pointer_expression "*(int **)(*local_c4 + 0xc)" * (cast_expression "(int **)(*local_c4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_c4 + 0xc)" ( (binary_expression "*local_c4 + 0xc" (pointer_expression "*local_c4" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }" { (expression_statement "*(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;" (assignment_expression "*(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8" (pointer_expression "*(undefined ***)(puVar16 + -0xc)" * (cast_expression "(undefined ***)(puVar16 + -0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65db8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar16 + -0x14)" * (cast_expression "(int *)(puVar16 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -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 *)(puVar16 + -0x18) = 0x8e7e2;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8e7e2" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar19 = *(undefined ***)(*piVar3 + 0x104);" (assignment_expression "ppuVar19 = *(undefined ***)(*piVar3 + 0x104)" identifier = (pointer_expression "*(undefined ***)(*piVar3 + 0x104)" * (cast_expression "(undefined ***)(*piVar3 + 0x104)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar3 + 0x104)" ( (binary_expression "*piVar3 + 0x104" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (expression_statement "ppuVar10 = local_a4 + -0x1569f4;" (assignment_expression "ppuVar10 = local_a4 + -0x1569f4" identifier = (binary_expression "local_a4 + -0x1569f4" identifier + number_literal)) ;) (if_statement "if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }" if (parenthesized_expression "(ppuVar19 != ppuVar10)" ( (binary_expression "ppuVar19 != ppuVar10" identifier != identifier) )) (compound_statement "{\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }" { (expression_statement "*(int *)(puVar16 + -8) = local_b8;" (assignment_expression "*(int *)(puVar16 + -8) = local_b8" (pointer_expression "*(int *)(puVar16 + -8)" * (cast_expression "(int *)(puVar16 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar16 + -0xc) = local_bc;" (assignment_expression "*(int *)(puVar16 + -0xc) = local_bc" (pointer_expression "*(int *)(puVar16 + -0xc)" * (cast_expression "(int *)(puVar16 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar16 + -0x10) = local_a8;" (assignment_expression "*(uint **)(puVar16 + -0x10) = local_a8" (pointer_expression "*(uint **)(puVar16 + -0x10)" * (cast_expression "(uint **)(puVar16 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar16 + -0x14) = local_ac;" (assignment_expression "*(uint **)(puVar16 + -0x14) = local_ac" (pointer_expression "*(uint **)(puVar16 + -0x14)" * (cast_expression "(uint **)(puVar16 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar16 + -0x18) = param_5;" (assignment_expression "*(uint **)(puVar16 + -0x18) = param_5" (pointer_expression "*(uint **)(puVar16 + -0x18)" * (cast_expression "(uint **)(puVar16 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar16 + -0x1c) = param_4;" (assignment_expression "*(uint **)(puVar16 + -0x1c) = param_4" (pointer_expression "*(uint **)(puVar16 + -0x1c)" * (cast_expression "(uint **)(puVar16 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar16 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar16 + -0x20) = param_2" (pointer_expression "*(int *)(puVar16 + -0x20)" * (cast_expression "(int *)(puVar16 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x20)" ( (binary_expression "puVar16 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar16 + -0x24) = piVar3;" (assignment_expression "*(int **)(puVar16 + -0x24) = piVar3" (pointer_expression "*(int **)(puVar16 + -0x24)" * (cast_expression "(int **)(puVar16 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x24)" ( (binary_expression "puVar16 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;" (assignment_expression "*(undefined4 *)(puVar16 + -0x28) = 0x8e0fc" (pointer_expression "*(undefined4 *)(puVar16 + -0x28)" * (cast_expression "(undefined4 *)(puVar16 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x28)" ( (binary_expression "puVar16 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar19)();" (call_expression "(*(code *)ppuVar19)()" (parenthesized_expression "(*(code *)ppuVar19)" ( (pointer_expression "*(code *)ppuVar19" * (cast_expression "(code *)ppuVar19" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = extraout_ECX_07;" (assignment_expression "ppuVar10 = extraout_ECX_07" identifier = identifier) ;) })) (expression_statement "pbVar20 = local_cc;" (assignment_expression "pbVar20 = local_cc" identifier = identifier) ;) (expression_statement "puVar17 = puVar16 + -4;" (assignment_expression "puVar17 = puVar16 + -4" identifier = (binary_expression "puVar16 + -4" identifier + number_literal)) ;) (if_statement "if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }" if (parenthesized_expression "(local_cc != (byte *)0x0)" ( (binary_expression "local_cc != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }" { (expression_statement "local_a8 = &local_2c;" (assignment_expression "local_a8 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "iVar13 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar13 = *(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 **)(puVar16 + -0x14) = local_cc;" (assignment_expression "*(byte **)(puVar16 + -0x14) = local_cc" (pointer_expression "*(byte **)(puVar16 + -0x14)" * (cast_expression "(byte **)(puVar16 + -0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_34 = local_a8;" (assignment_expression "local_34 = local_a8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfc4" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar7 = strlen(*(char **)(puVar16 + -0x14));" (assignment_expression "sVar7 = strlen(*(char **)(puVar16 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar16 + -0x14))" identifier (argument_list "(*(char **)(puVar16 + -0x14))" ( (pointer_expression "*(char **)(puVar16 + -0x14)" * (cast_expression "(char **)(puVar16 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppuVar6 = local_a0;" (assignment_expression "ppuVar6 = local_a0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -8)" * (cast_expression "(undefined4 *)(puVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;" (assignment_expression "*(byte **)(puVar16 + -0xc) = pbVar20 + sVar7" (pointer_expression "*(byte **)(puVar16 + -0xc)" * (cast_expression "(byte **)(puVar16 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (binary_expression "pbVar20 + sVar7" identifier + identifier)) ;) (expression_statement "*(byte **)(puVar16 + -0x10) = pbVar20;" (assignment_expression "*(byte **)(puVar16 + -0x10) = pbVar20" (pointer_expression "*(byte **)(puVar16 + -0x10)" * (cast_expression "(byte **)(puVar16 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint ***)(puVar16 + -0x14) = local_a0;" (assignment_expression "*(uint ***)(puVar16 + -0x14) = local_a0" (pointer_expression "*(uint ***)(puVar16 + -0x14)" * (cast_expression "(uint ***)(puVar16 + -0x14)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfd9" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(uint ***)(puVar16 + -0xc) = ppuVar6;" (assignment_expression "*(uint ***)(puVar16 + -0xc) = ppuVar6" (pointer_expression "*(uint ***)(puVar16 + -0xc)" * (cast_expression "(uint ***)(puVar16 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar16 + -0x10) = iVar13 + 0x44;" (assignment_expression "*(int *)(puVar16 + -0x10) = iVar13 + 0x44" (pointer_expression "*(int *)(puVar16 + -0x10)" * (cast_expression "(int *)(puVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar13 + 0x44" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar16 + -0x14) = &local_9c;" (assignment_expression "*(int **)(puVar16 + -0x14) = &local_9c" (pointer_expression "*(int **)(puVar16 + -0x14)" * (cast_expression "(int **)(puVar16 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfed;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfed" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar13 = local_9c;" (assignment_expression "iVar13 = local_9c" identifier = identifier) ;) (expression_statement "ppuVar10 = extraout_ECX_04;" (assignment_expression "ppuVar10 = extraout_ECX_04" identifier = identifier) ;) (if_statement "if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }" if (parenthesized_expression "(local_34 != local_a8)" ( (binary_expression "local_34 != local_a8" identifier != identifier) )) (compound_statement "{\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }" { (expression_statement "*(uint **)(puVar16 + -0x18) = local_34;" (assignment_expression "*(uint **)(puVar16 + -0x18) = local_34" (pointer_expression "*(uint **)(puVar16 + -0x18)" * (cast_expression "(uint **)(puVar16 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x1c) = 0x8e010;" (assignment_expression "*(undefined4 *)(puVar16 + -0x1c) = 0x8e010" (pointer_expression "*(undefined4 *)(puVar16 + -0x1c)" * (cast_expression "(undefined4 *)(puVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = extraout_ECX_05;" (assignment_expression "ppuVar10 = extraout_ECX_05" identifier = identifier) ;) })) (expression_statement "puVar17 = puVar16 + -8;" (assignment_expression "puVar17 = puVar16 + -8" identifier = (binary_expression "puVar16 + -8" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar4 = *(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) ))))) ;) (if_statement "if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }" if (parenthesized_expression "(iVar13 != iVar4 + 0x48)" ( (binary_expression "iVar13 != iVar4 + 0x48" identifier != (binary_expression "iVar4 + 0x48" identifier + number_literal)) )) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -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 "ppuVar19 = *(undefined ***)(iVar4 + 0x18);" (assignment_expression "ppuVar19 = *(undefined ***)(iVar4 + 0x18)" identifier = (pointer_expression "*(undefined ***)(iVar4 + 0x18)" * (cast_expression "(undefined ***)(iVar4 + 0x18)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "ppuVar12 = (undefined **)(iVar4 + 0x14);" (assignment_expression "ppuVar12 = (undefined **)(iVar4 + 0x14)" identifier = (cast_expression "(undefined **)(iVar4 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) ;) (if_statement "if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" if (parenthesized_expression "(*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0)" ( (binary_expression "*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0" (pointer_expression "*(undefined ***)(iVar4 + 0x18)" * (cast_expression "(undefined ***)(iVar4 + 0x18)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }" { (labeled_statement "LAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;" statement_identifier : (expression_statement "*(uint ****)(puVar16 + -0x18) = &local_70;" (assignment_expression "*(uint ****)(puVar16 + -0x18) = &local_70" (pointer_expression "*(uint ****)(puVar16 + -0x18)" * (cast_expression "(uint ****)(puVar16 + -0x18)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -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 *)(puVar16 + -0x1c) = 0x8e15e;" (assignment_expression "*(undefined4 *)(puVar16 + -0x1c) = 0x8e15e" (pointer_expression "*(undefined4 *)(puVar16 + -0x1c)" * (cast_expression "(undefined4 *)(puVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = local_98;" (assignment_expression "ppuVar10 = local_98" identifier = identifier) ;) }) (else_clause "else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" else (compound_statement "{\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" { (do_statement "do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);" do (compound_statement "{\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  }" { (while_statement "while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }" while (parenthesized_expression "((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))))" ( (parenthesized_expression "(ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))" ( (comma_expression "ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" (assignment_expression "ppuVar10 = ppuVar19" identifier = identifier) , (binary_expression "param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" (binary_expression "param_4 <= ppuVar10[4]" identifier <= (subscript_expression "ppuVar10[4]" identifier [ number_literal ])) && (parenthesized_expression "((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" ( (parenthesized_expression "(param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))" ( (binary_expression "param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])" (binary_expression "param_4 != (uint *)ppuVar10[4]" identifier != (cast_expression "(uint *)ppuVar10[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar10[4]" identifier [ number_literal ]))) || (parenthesized_expression "(param_5 <= ppuVar10[5])" ( (binary_expression "param_5 <= ppuVar10[5]" identifier <= (subscript_expression "ppuVar10[5]" identifier [ number_literal ])) ))) )) )))) )) )) (compound_statement "{\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }" { (expression_statement "ppuVar19 = (undefined **)ppuVar10[2];" (assignment_expression "ppuVar19 = (undefined **)ppuVar10[2]" identifier = (cast_expression "(undefined **)ppuVar10[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar10[2]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar12 = ppuVar10;" (assignment_expression "ppuVar12 = ppuVar10" identifier = identifier) ;) (if_statement "if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;" if (parenthesized_expression "((undefined **)ppuVar10[2] == (undefined **)0x0)" ( (binary_expression "(undefined **)ppuVar10[2] == (undefined **)0x0" (cast_expression "(undefined **)ppuVar10[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppuVar10[2]" identifier [ number_literal ])) == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0008e06a;" goto statement_identifier ;)) })) (expression_statement "ppuVar11 = ppuVar10 + 3;" (assignment_expression "ppuVar11 = ppuVar10 + 3" identifier = (binary_expression "ppuVar10 + 3" identifier + number_literal)) ;) (expression_statement "ppuVar19 = (undefined **)*ppuVar11;" (assignment_expression "ppuVar19 = (undefined **)*ppuVar11" identifier = (cast_expression "(undefined **)*ppuVar11" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppuVar11" * identifier))) ;) (expression_statement "ppuVar10 = ppuVar12;" (assignment_expression "ppuVar10 = ppuVar12" identifier = identifier) ;) }) while (parenthesized_expression "((undefined **)*ppuVar11 != (undefined **)0x0)" ( (binary_expression "(undefined **)*ppuVar11 != (undefined **)0x0" (cast_expression "(undefined **)*ppuVar11" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*ppuVar11" * identifier)) != (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (labeled_statement "LAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;" statement_identifier : (if_statement "if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;" if (parenthesized_expression "(((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))" ( (binary_expression "((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])))" (parenthesized_expression "((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4]))" ( (binary_expression "(ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])" (parenthesized_expression "(ppuVar10 == (undefined **)(iVar4 + 0x14))" ( (binary_expression "ppuVar10 == (undefined **)(iVar4 + 0x14)" identifier == (cast_expression "(undefined **)(iVar4 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )) || (parenthesized_expression "(param_4 < ppuVar10[4])" ( (binary_expression "param_4 < ppuVar10[4]" identifier < (subscript_expression "ppuVar10[4]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])))" ( (parenthesized_expression "(param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))" ( (binary_expression "param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])" (binary_expression "param_4 == (uint *)ppuVar10[4]" identifier == (cast_expression "(uint *)ppuVar10[4]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar10[4]" identifier [ number_literal ]))) && (parenthesized_expression "(param_5 < ppuVar10[5])" ( (binary_expression "param_5 < ppuVar10[5]" identifier < (subscript_expression "ppuVar10[5]" identifier [ number_literal ])) ))) )) ))) )) (goto_statement "goto LAB_0008e140;" goto statement_identifier ;))) }))) (expression_statement "puVar17 = puVar16 + -8;" (assignment_expression "puVar17 = puVar16 + -8" identifier = (binary_expression "puVar16 + -8" identifier + number_literal)) ;) (expression_statement "ppuVar19 = ppuVar10 + 6;" (assignment_expression "ppuVar19 = ppuVar10 + 6" identifier = (binary_expression "ppuVar10 + 6" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar16 + -8;" (assignment_expression "puVar16 = puVar16 + -8" identifier = (binary_expression "puVar16 + -8" identifier + number_literal)) ;) (for_statement "for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }" for ( (assignment_expression "puVar2 = *(undefined4 **)(iVar13 + 0x30)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x30)" * (cast_expression "(undefined4 **)(iVar13 + 0x30)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x30)" ( (binary_expression "iVar13 + 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 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }" { (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ****)(puVar16 + -0x14) = local_84;" (assignment_expression "*(undefined ****)(puVar16 + -0x14) = local_84" (pointer_expression "*(undefined ****)(puVar16 + -0x14)" * (cast_expression "(undefined ****)(puVar16 + -0x14)" ( (type_descriptor "undefined ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(puVar16 + -0x18) = puVar2 + 1" (pointer_expression "*(undefined4 **)(puVar16 + -0x18)" * (cast_expression "(undefined4 **)(puVar16 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined ***)(puVar16 + -0x1c) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar16 + -0x1c) = ppuVar19" (pointer_expression "*(undefined ***)(puVar16 + -0x1c)" * (cast_expression "(undefined ***)(puVar16 + -0x1c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar16 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar16 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar16 + -0x20)" * (cast_expression "(undefined1 **)(puVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x20)" ( (binary_expression "puVar16 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;" (assignment_expression "*(undefined4 *)(puVar16 + -0x24) = 0x8e0c3" (pointer_expression "*(undefined4 *)(puVar16 + -0x24)" * (cast_expression "(undefined4 *)(puVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x24)" ( (binary_expression "puVar16 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_84[0] = ppuVar19;" (assignment_expression "local_84[0] = ppuVar19" (subscript_expression "local_84[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puVar16 + -4;" (assignment_expression "puVar17 = puVar16 + -4" identifier = (binary_expression "puVar16 + -4" identifier + number_literal)) ;) (expression_statement "ppuVar10 = extraout_ECX_06;" (assignment_expression "ppuVar10 = extraout_ECX_06" identifier = identifier) ;) (expression_statement "puVar16 = puVar16 + -4;" (assignment_expression "puVar16 = puVar16 + -4" identifier = (binary_expression "puVar16 + -4" identifier + number_literal)) ;) })) })) })) })) })) }) (else_clause "else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" else (compound_statement "{\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" { (if_statement "if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }" if (parenthesized_expression "(uVar15 < param_4[0x2c])" ( (binary_expression "uVar15 < param_4[0x2c]" identifier < (subscript_expression "param_4[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }" { (expression_statement "local_5c = (uint *)0x0;" (assignment_expression "local_5c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" statement_identifier : (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65e39" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" 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 **)(puVar17 + -0x14) = &UNK_0008e2c8;" (assignment_expression "*(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8" (pointer_expression "*(undefined **)(puVar17 + -0x14)" * (cast_expression "(undefined **)(puVar17 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_0008e2c8" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar15 = uVar15 - param_4[0x2c];" (assignment_expression "uVar15 = uVar15 - param_4[0x2c]" identifier = (binary_expression "uVar15 - param_4[0x2c]" identifier - (subscript_expression "param_4[0x2c]" identifier [ number_literal ]))) ;) (expression_statement "local_a0 = (uint **)param_4[0x30];" (assignment_expression "local_a0 = (uint **)param_4[0x30]" identifier = (cast_expression "(uint **)param_4[0x30]" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0x30]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }" if (parenthesized_expression "((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15)" ( (binary_expression "(uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15" (call_expression "(uint)((int)((int)local_a0 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((int)local_a0 - param_4[0x2f]) >> 2)" ( (binary_expression "(int)((int)local_a0 - param_4[0x2f]) >> 2" (cast_expression "(int)((int)local_a0 - param_4[0x2f])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_a0 - param_4[0x2f])" ( (binary_expression "(int)local_a0 - param_4[0x2f]" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_4[0x2f]" identifier [ number_literal ])) ))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65dcc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" 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 *)(puVar17 + -0x14) = 0x8e7c4;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e7c4" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);" (assignment_expression "local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4)" identifier = (pointer_expression "*(uint **)(param_4[0x2f] + uVar15 * 4)" * (cast_expression "(uint **)(param_4[0x2f] + uVar15 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4[0x2f] + uVar15 * 4)" ( (binary_expression "param_4[0x2f] + uVar15 * 4" (subscript_expression "param_4[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_5c == (uint *)0x0) goto LAB_0008e2a7;" if (parenthesized_expression "(local_5c == (uint *)0x0)" ( (binary_expression "local_5c == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008e2a7;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }" if (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((int)local_5c + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" * (cast_expression "(byte *)((int)local_5c + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2a)" ( (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }" { (expression_statement "*(uint **)(puVar17 + -0xc) = local_5c;" (assignment_expression "*(uint **)(puVar17 + -0xc) = local_5c" (pointer_expression "*(uint **)(puVar17 + -0xc)" * (cast_expression "(uint **)(puVar17 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = param_2;" (assignment_expression "*(int *)(puVar17 + -0x10) = param_2" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e292;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e292" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5c = (uint *)FUN_0034cd90();" (assignment_expression "local_5c = (uint *)FUN_0034cd90()" identifier = (cast_expression "(uint *)FUN_0034cd90()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034cd90()" identifier (argument_list "()" ( ))))) ;) })) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" if (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_5c + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" * (cast_expression "(byte *)((int)local_5c + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2a)" ( (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }" { (expression_statement "local_e4 = (uint *)local_5c[0xc];" (assignment_expression "local_e4 = (uint *)local_5c[0xc]" identifier = (cast_expression "(uint *)local_5c[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_e0 = local_5c[0xd];" (assignment_expression "local_e0 = local_5c[0xd]" identifier = (subscript_expression "local_5c[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_bc = (int)local_e4 + local_b4;" (assignment_expression "local_bc = (int)local_e4 + local_b4" identifier = (binary_expression "(int)local_e4 + local_b4" (cast_expression "(int)local_e4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "local_ac = (uint *)local_5c[2];" (assignment_expression "local_ac = (uint *)local_5c[2]" identifier = (cast_expression "(uint *)local_5c[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[2]" identifier [ number_literal ]))) ;) (expression_statement "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);" (assignment_expression "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" identifier = (binary_expression "local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" (binary_expression "local_b0 + local_e0" identifier + identifier) + (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)local_e4)" identifier (argument_list "(local_b4,(uint)local_e4)" ( identifier , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = (local_ac[0xb] & 1) == 0;" (assignment_expression "bVar24 = (local_ac[0xb] & 1) == 0" identifier = (binary_expression "(local_ac[0xb] & 1) == 0" (parenthesized_expression "(local_ac[0xb] & 1)" ( (binary_expression "local_ac[0xb] & 1" (subscript_expression "local_ac[0xb]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }" { (expression_statement "local_a8 = (uint *)local_5c[3];" (assignment_expression "local_a8 = (uint *)local_5c[3]" identifier = (cast_expression "(uint *)local_5c[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar14 = (byte)local_5c[10] & 0xf;" (assignment_expression "bVar14 = (byte)local_5c[10] & 0xf" identifier = (binary_expression "(byte)local_5c[10] & 0xf" (cast_expression "(byte)local_5c[10]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_5c[10]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;" (assignment_expression "local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_5c + 0x2b)" * (cast_expression "(byte *)((int)local_5c + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x2b)" ( (binary_expression "(int)local_5c + 0x2b" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "bVar22 = bVar14 < 2;" (assignment_expression "bVar22 = bVar14 < 2" identifier = (binary_expression "bVar14 < 2" identifier < number_literal)) ;) (expression_statement "bVar24 = bVar14 == 2;" (assignment_expression "bVar24 = bVar14 == 2" identifier = (binary_expression "bVar14 == 2" identifier == number_literal)) ;) (if_statement "if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = local_bf == '\0';" (assignment_expression "bVar24 = local_bf == '\0'" identifier = (binary_expression "local_bf == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }" { (if_statement "if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }" if (parenthesized_expression "(local_bd != 0)" ( (binary_expression "local_bd != 0" identifier != number_literal) )) (compound_statement "{\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }" { (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }" if (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" ( (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }" { (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" * (cast_expression "(undefined4 *)(puVar17 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b32" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -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 *)(puVar17 + -0x14) = 0x8e88f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e88f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }" if (parenthesized_expression "((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0))" ( (binary_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)" (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0')" ( (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" * (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x1a25)" ( (binary_expression "*(int *)(*local_c4 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_c4 + 8)" * (cast_expression "(int *)(*local_c4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_c4 + 8)" ( (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" * identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((*(byte *)((int)local_5c + 0x29) & 3) == 0)" ( (binary_expression "(*(byte *)((int)local_5c + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x29) & 3)" ( (binary_expression "*(byte *)((int)local_5c + 0x29) & 3" (pointer_expression "*(byte *)((int)local_5c + 0x29)" * (cast_expression "(byte *)((int)local_5c + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + 0x29)" ( (binary_expression "(int)local_5c + 0x29" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }" { (expression_statement "bVar22 = local_f0 < (undefined **)0x2a;" (assignment_expression "bVar22 = local_f0 < (undefined **)0x2a" identifier = (binary_expression "local_f0 < (undefined **)0x2a" identifier < (cast_expression "(undefined **)0x2a" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "bVar24 = local_f0 == (undefined **)0x2a;" (assignment_expression "bVar24 = local_f0 == (undefined **)0x2a" identifier = (binary_expression "local_f0 == (undefined **)0x2a" identifier == (cast_expression "(undefined **)0x2a" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (if_statement "if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }" if (parenthesized_expression "(local_f0 < (undefined **)0x2b)" ( (binary_expression "local_f0 < (undefined **)0x2b" identifier < (cast_expression "(undefined **)0x2b" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }" { (expression_statement "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))" ( (pointer_expression "*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" * (cast_expression "(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" ( (binary_expression "local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4" (subscript_expression "local_a4[(int)((int)local_f0 + -0x65f1a)]" identifier [ (cast_expression "(int)((int)local_f0 + -0x65f1a)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)local_f0 + -0x65f1a)" ( (binary_expression "(int)local_f0 + -0x65f1a" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) + (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0008dd50;" goto statement_identifier ;) })) })) (expression_statement "local_a0 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" identifier = (pointer_expression "*(uint ***)(param_2 + 0x15c)" * (cast_expression "(uint ***)(param_2 + 0x15c)" ( (type_descriptor "uint ***" 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 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" * (cast_expression "(undefined4 *)(puVar17 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint ****)(puVar17 + -0x14) = &local_88;" (assignment_expression "*(uint ****)(puVar17 + -0x14) = &local_88" (pointer_expression "*(uint ****)(puVar17 + -0x14)" * (cast_expression "(uint ****)(puVar17 + -0x14)" ( (type_descriptor "uint ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_88" & identifier)) ;) (expression_statement "*(uint ***)(puVar17 + -0x18) = &local_64;" (assignment_expression "*(uint ***)(puVar17 + -0x18) = &local_64" (pointer_expression "*(uint ***)(puVar17 + -0x18)" * (cast_expression "(uint ***)(puVar17 + -0x18)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" 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 "*(uint ***)(puVar17 + -0x1c) = local_88;" (assignment_expression "*(uint ***)(puVar17 + -0x1c) = local_88" (pointer_expression "*(uint ***)(puVar17 + -0x1c)" * (cast_expression "(uint ***)(puVar17 + -0x1c)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x1c)" ( (binary_expression "puVar17 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" * (cast_expression "(undefined1 **)(puVar17 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x8e54e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x8e54e" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" * (cast_expression "(undefined4 *)(puVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x24)" ( (binary_expression "puVar17 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_64 = local_ac;" (assignment_expression "local_64 = local_ac" 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 < puVar17 + -0x20;" (assignment_expression "bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20" identifier = (binary_expression "(undefined1 *)0xffffffe3 < puVar17 + -0x20" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar17 + -0x20" identifier + number_literal))) ;) (expression_statement "bVar24 = puVar17 == (undefined1 *)0x4;" (assignment_expression "bVar24 = puVar17 == (undefined1 *)0x4" identifier = (binary_expression "puVar17 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" identifier = (binary_expression "puVar17 + -4" identifier + number_literal)) ;) })) })) }) (else_clause "else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" else (compound_statement "{\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" { (expression_statement "local_bd = 0;" (assignment_expression "local_bd = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (uint *)0x0;" (assignment_expression "local_a8 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (uint *)0x0;" (assignment_expression "local_ac = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" else (compound_statement "{\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" { (expression_statement "local_e4 = (uint *)local_5c[0xc];" (assignment_expression "local_e4 = (uint *)local_5c[0xc]" identifier = (cast_expression "(uint *)local_5c[0xc]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_e0 = local_5c[0xd];" (assignment_expression "local_e0 = local_5c[0xd]" identifier = (subscript_expression "local_5c[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_bd = 0;" (assignment_expression "local_bd = 0" identifier = number_literal) ;) (expression_statement "local_a8 = (uint *)0x0;" (assignment_expression "local_a8 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_bc = (int)local_e4 + local_b4;" (assignment_expression "local_bc = (int)local_e4 + local_b4" identifier = (binary_expression "(int)local_e4 + local_b4" (cast_expression "(int)local_e4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));" (assignment_expression "bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" identifier = (binary_expression "CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" (call_expression "CARRY4(local_b0,local_e0)" identifier (argument_list "(local_b0,local_e0)" ( identifier , identifier ))) || (call_expression "CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" identifier (argument_list "(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" ( (binary_expression "local_b0 + local_e0" identifier + identifier) , (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)local_e4)" identifier (argument_list "(local_b4,(uint)local_e4)" ( identifier , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ))))) ;) (expression_statement "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);" (assignment_expression "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" identifier = (binary_expression "local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" (binary_expression "local_b0 + local_e0" identifier + identifier) + (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_b4,(uint)local_e4)" identifier (argument_list "(local_b4,(uint)local_e4)" ( identifier , (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "bVar24 = local_b8 == 0;" (assignment_expression "bVar24 = local_b8 == 0" identifier = (binary_expression "local_b8 == 0" identifier == number_literal)) ;) (expression_statement "local_ac = (uint *)0x0;" (assignment_expression "local_ac = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;" statement_identifier : (expression_statement "pbVar20 = (byte *)*local_5c;" (assignment_expression "pbVar20 = (byte *)*local_5c" identifier = (cast_expression "(byte *)*local_5c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_5c" * identifier))) ;)) (expression_statement "ppuVar10 = (undefined **)&DAT_00000008;" (assignment_expression "ppuVar10 = (undefined **)&DAT_00000008" identifier = (cast_expression "(undefined **)&DAT_00000008" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000008" & identifier))) ;) (expression_statement "pbVar9 = (byte *)((int)local_a4 + -0x19ca26);" (assignment_expression "pbVar9 = (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 "pbVar21 = pbVar20;" (assignment_expression "pbVar21 = pbVar20" identifier = identifier) ;) (do_statement "do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar22 = *pbVar9 < *pbVar21;" (assignment_expression "bVar22 = *pbVar9 < *pbVar21" identifier = (binary_expression "*pbVar9 < *pbVar21" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar9 == *pbVar21;" (assignment_expression "bVar24 = *pbVar9 == *pbVar21" identifier = (binary_expression "*pbVar9 == *pbVar21" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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 "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (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          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          pbVar20 = pbVar20 + 8;\n        }" { (expression_statement "pbVar20 = pbVar20 + 8;" (assignment_expression "pbVar20 = pbVar20 + 8" identifier = (binary_expression "pbVar20 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" else (compound_statement "{\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" { (expression_statement "ppuVar10 = (undefined **)0x7;" (assignment_expression "ppuVar10 = (undefined **)0x7" identifier = (cast_expression "(undefined **)0x7" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);" (assignment_expression "pbVar9 = (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 "pbVar21 = pbVar20;" (assignment_expression "pbVar21 = pbVar20" identifier = identifier) ;) (do_statement "do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (ppuVar10 == (undefined **)0x0) break;" if (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" ( (binary_expression "ppuVar10 == (undefined **)0x0" identifier == (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" identifier = (cast_expression "(undefined **)((int)ppuVar10 + -1)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + -1)" ( (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar23 = *pbVar9 < *pbVar21;" (assignment_expression "bVar23 = *pbVar9 < *pbVar21" identifier = (binary_expression "*pbVar9 < *pbVar21" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar22 = *pbVar9 == *pbVar21;" (assignment_expression "bVar22 = *pbVar9 == *pbVar21" identifier = (binary_expression "*pbVar9 == *pbVar21" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (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 "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (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 "pbVar20 = pbVar20 + 7;" (assignment_expression "pbVar20 = pbVar20 + 7" identifier = (binary_expression "pbVar20 + 7" identifier + number_literal)) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\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            pbVar20 = local_cc;\n          }" { (expression_statement "pbVar20 = local_cc;" (assignment_expression "pbVar20 = local_cc" identifier = identifier) ;) })) }))) (expression_statement "local_cc = pbVar20;" (assignment_expression "local_cc = pbVar20" identifier = identifier) ;) (if_statement "if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }" if (parenthesized_expression "(local_be != '\0')" ( (binary_expression "local_be != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }" { (if_statement "if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" if (parenthesized_expression "(local_bd == 0)" ( (binary_expression "local_bd == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }" { (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" else (compound_statement "{\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" { (expression_statement "local_34 = local_ac;" (assignment_expression "local_34 = local_ac" 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 "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8ddbe" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_d0 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_d0 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_d0 + 4)" * (cast_expression "(undefined4 **)(local_d0 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_d0 + 4)" ( (binary_expression "local_d0 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_d0 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_d0 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_d0 + 8)" * (cast_expression "(undefined4 **)(local_d0 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_d0 + 8)" ( (binary_expression "local_d0 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }" { (expression_statement "*(uint ***)(puVar17 + -8) = &local_5c;" (assignment_expression "*(uint ***)(puVar17 + -8) = &local_5c" (pointer_expression "*(uint ***)(puVar17 + -8)" * (cast_expression "(uint ***)(puVar17 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" * (cast_expression "(undefined4 **)(puVar17 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e423;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e423" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" 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_d0 + 4) = puVar2 + 1;\n          }" else (compound_statement "{\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }" { (expression_statement "*puVar2 = local_5c;" (assignment_expression "*puVar2 = local_5c" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_d0 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_d0 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_d0 + 4)" * (cast_expression "(undefined4 **)(local_d0 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_d0 + 4)" ( (binary_expression "local_d0 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_e8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_e8" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_e4;" (assignment_expression "local_34 = local_e4" identifier = identifier) ;) (expression_statement "local_30 = (uint *)local_e0;" (assignment_expression "local_30 = (uint *)local_e0" identifier = (cast_expression "(uint *)local_e0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_2c = local_b4;" (assignment_expression "local_2c = local_b4" identifier = identifier) ;) (expression_statement "local_28 = local_b0;" (assignment_expression "local_28 = local_b0" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8de17;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8de17" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar18 = (uint *)*param_7;" (assignment_expression "puVar18 = (uint *)*param_7" identifier = (cast_expression "(uint *)*param_7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_7" * identifier))) ;) (if_statement "if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }" if (parenthesized_expression "(param_7[1] != 0)" ( (binary_expression "param_7[1] != 0" (subscript_expression "param_7[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }" { (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70" (pointer_expression "*(undefined ***)(puVar17 + -8)" * (cast_expression "(undefined ***)(puVar17 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x65b70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" * (cast_expression "(undefined4 *)(puVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" * (cast_expression "(undefined ***)(puVar17 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (binary_expression "local_a4 + -0x672d3" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e803;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e803" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)local_d4[1];" (assignment_expression "puVar2 = (undefined4 *)local_d4[1]" identifier = (cast_expression "(undefined4 *)local_d4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d4[1]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" identifier = identifier) ;) (if_statement "if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" if (parenthesized_expression "(puVar2 == (undefined4 *)local_d4[2])" ( (binary_expression "puVar2 == (undefined4 *)local_d4[2]" identifier == (cast_expression "(undefined4 *)local_d4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_d4[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }" { (expression_statement "*(uint ***)(puVar17 + -8) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -8) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -8)" * (cast_expression "(uint ***)(puVar17 + -8)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" * (cast_expression "(undefined4 **)(puVar17 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_d4;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_d4" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" * (cast_expression "(undefined ***)(puVar17 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e445;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e445" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" else (compound_statement "{\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" { (expression_statement "*puVar2 = puVar18;" (assignment_expression "*puVar2 = puVar18" (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 "local_d4[1] = (undefined *)(puVar2 + 2);" (assignment_expression "local_d4[1] = (undefined *)(puVar2 + 2)" (subscript_expression "local_d4[1]" identifier [ number_literal ]) = (cast_expression "(undefined *)(puVar2 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 2)" ( (binary_expression "puVar2 + 2" identifier + number_literal) )))) ;) }))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(uint ***)(puVar17 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar17 + -0xc)" * (cast_expression "(uint ***)(puVar17 + -0xc)" ( (type_descriptor "uint ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_54" & identifier)) ;) (expression_statement "*(int *)(puVar17 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar17 + -0x10)" * (cast_expression "(int *)(puVar17 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8de6e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8de6e" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppuVar10 = extraout_ECX_03;" (assignment_expression "ppuVar10 = extraout_ECX_03" identifier = identifier) ;) })) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (if_statement "if (local_bd != 0) goto LAB_0008de7e;" if (parenthesized_expression "(local_bd != 0)" ( (binary_expression "local_bd != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008de7e;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0008db0d:\n      local_dc = local_dc + 1;" statement_identifier : (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" identifier = (binary_expression "local_dc + 1" identifier + number_literal)) ;)) (expression_statement "param_7 = param_7 + 6;" (assignment_expression "param_7 = param_7 + 6" identifier = (binary_expression "param_7 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_8 != local_dc)" ( (binary_expression "param_8 != local_dc" identifier != identifier) )) ;) })) (if_statement "if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }" if (parenthesized_expression "(local_4c[0] != local_f8)" ( (binary_expression "local_4c[0] != local_f8" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }" { (expression_statement "*(byte **)(puVar17 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar17 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar17 + -0x10)" * (cast_expression "(byte **)(puVar17 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dc0a" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" * (cast_expression "(undefined4 *)(puVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" 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 (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE 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 * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))) ;) (declaration TYPE (pointer_declarator * (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (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 = (binary_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) )))) = 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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (binary_expression 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 (pointer_expression * (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)) == (binary_expression (parenthesized_expression ( IDENT )) * 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (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)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = 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 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 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 IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression 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 * (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) ;) }))) (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 *)) ) (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) )))) = (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 = (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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (pointer_expression * 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (pointer_expression * 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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)) ;) })) })) })) })) })) })) (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 (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 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 IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 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 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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 * (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 (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ( ))) ;) }) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) )))) = 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 ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (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 * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression 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 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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 <= (subscript_expression IDENT [ LIT ])) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) || (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 < (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) && (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) ))) )) ))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (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 * (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 * (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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression 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 = (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 (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 *))) ) (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) ;) (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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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) ;) }) (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 <= (subscript_expression IDENT [ LIT ])) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) || (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) || (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) && (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) ))) )) ))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 * (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) })) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_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 IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_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) - (subscript_expression IDENT [ LIT ])) ))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression 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 '))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (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 ')) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 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 * (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression 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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = 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) < (binary_expression 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)) ;) })) })) }) (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)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) || (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == 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 *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * 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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 * (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 (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ( ))) ;) }) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) )))) = 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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0008d8c0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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  undefined **ppuVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  code *pcVar5;\n  uint **ppuVar6;\n  size_t sVar7;\n  uint uVar8;\n  byte *pbVar9;\n  undefined **extraout_ECX;\n  undefined **extraout_ECX_00;\n  undefined **extraout_ECX_01;\n  undefined **extraout_ECX_02;\n  undefined **ppuVar10;\n  undefined **extraout_ECX_03;\n  undefined **ppuVar11;\n  undefined **extraout_ECX_04;\n  undefined **extraout_ECX_05;\n  undefined **ppuVar12;\n  undefined **extraout_ECX_06;\n  undefined **extraout_ECX_07;\n  undefined **extraout_ECX_08;\n  undefined **extraout_ECX_09;\n  int iVar13;\n  undefined **extraout_ECX_10;\n  byte bVar14;\n  uint uVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint *puVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_fc [4];\n  byte *local_f8;\n  undefined ***local_f4;\n  undefined **local_f0;\n  int local_ec;\n  int local_e8;\n  uint *local_e4;\n  uint local_e0;\n  int local_dc;\n  undefined1 *local_d8;\n  undefined **local_d4;\n  int local_d0;\n  byte *local_cc;\n  int local_c8;\n  int *local_c4;\n  char local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint *local_ac;\n  uint *local_a8;\n  undefined **local_a4;\n  uint **local_a0;\n  int local_9c;\n  undefined **local_98;\n  undefined1 local_94 [8];\n  uint **local_8c;\n  uint **local_88;\n  undefined **local_84 [3];\n  undefined **local_78;\n  uint **local_74;\n  uint **local_70;\n  uint *local_6c;\n  uint local_68;\n  uint *local_64;\n  uint *local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_c4 = &DAT_005ea7c8;\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }\n  pbVar20 = local_4c[0];\n  iVar13 = *local_c4;\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }\n  local_bf = '\0';\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }\n  if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0008d8c0(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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_0008d8c0") (parameter_list "(undefined4 param_1,int param_2,undefined4 param_3,uint *param_4,uint *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 "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint *param_5" (type_identifier "uint") (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  undefined **ppuVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  code *pcVar5;\n  uint **ppuVar6;\n  size_t sVar7;\n  uint uVar8;\n  byte *pbVar9;\n  undefined **extraout_ECX;\n  undefined **extraout_ECX_00;\n  undefined **extraout_ECX_01;\n  undefined **extraout_ECX_02;\n  undefined **ppuVar10;\n  undefined **extraout_ECX_03;\n  undefined **ppuVar11;\n  undefined **extraout_ECX_04;\n  undefined **extraout_ECX_05;\n  undefined **ppuVar12;\n  undefined **extraout_ECX_06;\n  undefined **extraout_ECX_07;\n  undefined **extraout_ECX_08;\n  undefined **extraout_ECX_09;\n  int iVar13;\n  undefined **extraout_ECX_10;\n  byte bVar14;\n  uint uVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint *puVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_fc [4];\n  byte *local_f8;\n  undefined ***local_f4;\n  undefined **local_f0;\n  int local_ec;\n  int local_e8;\n  uint *local_e4;\n  uint local_e0;\n  int local_dc;\n  undefined1 *local_d8;\n  undefined **local_d4;\n  int local_d0;\n  byte *local_cc;\n  int local_c8;\n  int *local_c4;\n  char local_bf;\n  char local_be;\n  byte local_bd;\n  int local_bc;\n  int local_b8;\n  uint local_b4;\n  uint local_b0;\n  uint *local_ac;\n  uint *local_a8;\n  undefined **local_a4;\n  uint **local_a0;\n  int local_9c;\n  undefined **local_98;\n  undefined1 local_94 [8];\n  uint **local_8c;\n  uint **local_88;\n  undefined **local_84 [3];\n  undefined **local_78;\n  uint **local_74;\n  uint **local_70;\n  uint *local_6c;\n  uint local_68;\n  uint *local_64;\n  uint *local_60;\n  uint *local_5c;\n  uint *local_58;\n  uint *local_54;\n  uint *local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  uint *local_34;\n  uint *local_30;\n  uint local_2c;\n  uint local_28;\n  \n  bVar25 = 0;\n  local_a4 = &__DT_PLTGOT;\n  if (param_6 == 9) {\n    return;\n  }\n  local_c4 = &DAT_005ea7c8;\n  if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }\n  pbVar20 = local_4c[0];\n  iVar13 = *local_c4;\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }\n  if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }\n  local_bf = '\0';\n  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }\n  if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }\n  if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }\n  return;\n}" ({ "{") (declaration "undefined **ppuVar1;" (type_identifier "undefined") (pointer_declarator "**ppuVar1" (* "*") (pointer_declarator "*ppuVar1" (* "*") (identifier "ppuVar1"))) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "code *pcVar5;" (type_identifier "code") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "uint **ppuVar6;" (type_identifier "uint") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "undefined **extraout_ECX;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX" (* "*") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX"))) (; ";")) (declaration "undefined **extraout_ECX_00;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_00" (* "*") (pointer_declarator "*extraout_ECX_00" (* "*") (identifier "extraout_ECX_00"))) (; ";")) (declaration "undefined **extraout_ECX_01;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_01" (* "*") (pointer_declarator "*extraout_ECX_01" (* "*") (identifier "extraout_ECX_01"))) (; ";")) (declaration "undefined **extraout_ECX_02;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_02" (* "*") (pointer_declarator "*extraout_ECX_02" (* "*") (identifier "extraout_ECX_02"))) (; ";")) (declaration "undefined **ppuVar10;" (type_identifier "undefined") (pointer_declarator "**ppuVar10" (* "*") (pointer_declarator "*ppuVar10" (* "*") (identifier "ppuVar10"))) (; ";")) (declaration "undefined **extraout_ECX_03;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_03" (* "*") (pointer_declarator "*extraout_ECX_03" (* "*") (identifier "extraout_ECX_03"))) (; ";")) (declaration "undefined **ppuVar11;" (type_identifier "undefined") (pointer_declarator "**ppuVar11" (* "*") (pointer_declarator "*ppuVar11" (* "*") (identifier "ppuVar11"))) (; ";")) (declaration "undefined **extraout_ECX_04;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_04" (* "*") (pointer_declarator "*extraout_ECX_04" (* "*") (identifier "extraout_ECX_04"))) (; ";")) (declaration "undefined **extraout_ECX_05;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_05" (* "*") (pointer_declarator "*extraout_ECX_05" (* "*") (identifier "extraout_ECX_05"))) (; ";")) (declaration "undefined **ppuVar12;" (type_identifier "undefined") (pointer_declarator "**ppuVar12" (* "*") (pointer_declarator "*ppuVar12" (* "*") (identifier "ppuVar12"))) (; ";")) (declaration "undefined **extraout_ECX_06;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_06" (* "*") (pointer_declarator "*extraout_ECX_06" (* "*") (identifier "extraout_ECX_06"))) (; ";")) (declaration "undefined **extraout_ECX_07;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_07" (* "*") (pointer_declarator "*extraout_ECX_07" (* "*") (identifier "extraout_ECX_07"))) (; ";")) (declaration "undefined **extraout_ECX_08;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_08" (* "*") (pointer_declarator "*extraout_ECX_08" (* "*") (identifier "extraout_ECX_08"))) (; ";")) (declaration "undefined **extraout_ECX_09;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_09" (* "*") (pointer_declarator "*extraout_ECX_09" (* "*") (identifier "extraout_ECX_09"))) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined **extraout_ECX_10;" (type_identifier "undefined") (pointer_declarator "**extraout_ECX_10" (* "*") (pointer_declarator "*extraout_ECX_10" (* "*") (identifier "extraout_ECX_10"))) (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint *puVar18;" (type_identifier "uint") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined **ppuVar19;" (type_identifier "undefined") (pointer_declarator "**ppuVar19" (* "*") (pointer_declarator "*ppuVar19" (* "*") (identifier "ppuVar19"))) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (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 "undefined1 auStack_fc [4];" (type_identifier "undefined1") (array_declarator "auStack_fc [4]" (identifier "auStack_fc") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "byte *local_f8;" (type_identifier "byte") (pointer_declarator "*local_f8" (* "*") (identifier "local_f8")) (; ";")) (declaration "undefined ***local_f4;" (type_identifier "undefined") (pointer_declarator "***local_f4" (* "*") (pointer_declarator "**local_f4" (* "*") (pointer_declarator "*local_f4" (* "*") (identifier "local_f4")))) (; ";")) (declaration "undefined **local_f0;" (type_identifier "undefined") (pointer_declarator "**local_f0" (* "*") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0"))) (; ";")) (declaration "int local_ec;" (primitive_type "int") (identifier "local_ec") (; ";")) (declaration "int local_e8;" (primitive_type "int") (identifier "local_e8") (; ";")) (declaration "uint *local_e4;" (type_identifier "uint") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4")) (; ";")) (declaration "uint local_e0;" (type_identifier "uint") (identifier "local_e0") (; ";")) (declaration "int local_dc;" (primitive_type "int") (identifier "local_dc") (; ";")) (declaration "undefined1 *local_d8;" (type_identifier "undefined1") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")) (; ";")) (declaration "undefined **local_d4;" (type_identifier "undefined") (pointer_declarator "**local_d4" (* "*") (pointer_declarator "*local_d4" (* "*") (identifier "local_d4"))) (; ";")) (declaration "int local_d0;" (primitive_type "int") (identifier "local_d0") (; ";")) (declaration "byte *local_cc;" (type_identifier "byte") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc")) (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "int *local_c4;" (primitive_type "int") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "char local_bf;" (primitive_type "char") (identifier "local_bf") (; ";")) (declaration "char local_be;" (primitive_type "char") (identifier "local_be") (; ";")) (declaration "byte local_bd;" (type_identifier "byte") (identifier "local_bd") (; ";")) (declaration "int local_bc;" (primitive_type "int") (identifier "local_bc") (; ";")) (declaration "int local_b8;" (primitive_type "int") (identifier "local_b8") (; ";")) (declaration "uint local_b4;" (type_identifier "uint") (identifier "local_b4") (; ";")) (declaration "uint local_b0;" (type_identifier "uint") (identifier "local_b0") (; ";")) (declaration "uint *local_ac;" (type_identifier "uint") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "uint *local_a8;" (type_identifier "uint") (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 "uint **local_a0;" (type_identifier "uint") (pointer_declarator "**local_a0" (* "*") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0"))) (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "undefined **local_98;" (type_identifier "undefined") (pointer_declarator "**local_98" (* "*") (pointer_declarator "*local_98" (* "*") (identifier "local_98"))) (; ";")) (declaration "undefined1 local_94 [8];" (type_identifier "undefined1") (array_declarator "local_94 [8]" (identifier "local_94") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint **local_8c;" (type_identifier "uint") (pointer_declarator "**local_8c" (* "*") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c"))) (; ";")) (declaration "uint **local_88;" (type_identifier "uint") (pointer_declarator "**local_88" (* "*") (pointer_declarator "*local_88" (* "*") (identifier "local_88"))) (; ";")) (declaration "undefined **local_84 [3];" (type_identifier "undefined") (pointer_declarator "**local_84 [3]" (* "*") (pointer_declarator "*local_84 [3]" (* "*") (array_declarator "local_84 [3]" (identifier "local_84") ([ "[") (number_literal "3") (] "]")))) (; ";")) (declaration "undefined **local_78;" (type_identifier "undefined") (pointer_declarator "**local_78" (* "*") (pointer_declarator "*local_78" (* "*") (identifier "local_78"))) (; ";")) (declaration "uint **local_74;" (type_identifier "uint") (pointer_declarator "**local_74" (* "*") (pointer_declarator "*local_74" (* "*") (identifier "local_74"))) (; ";")) (declaration "uint **local_70;" (type_identifier "uint") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70"))) (; ";")) (declaration "uint *local_6c;" (type_identifier "uint") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "uint *local_64;" (type_identifier "uint") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "uint *local_60;" (type_identifier "uint") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "uint *local_5c;" (type_identifier "uint") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "uint *local_58;" (type_identifier "uint") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "uint *local_54;" (type_identifier "uint") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "uint *local_50;" (type_identifier "uint") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "byte *local_4c [2];" (type_identifier "byte") (pointer_declarator "*local_4c [2]" (* "*") (array_declarator "local_4c [2]" (identifier "local_4c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "byte local_44 [16];" (type_identifier "byte") (array_declarator "local_44 [16]" (identifier "local_44") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "uint *local_34;" (type_identifier "uint") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (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_c4 = &DAT_005ea7c8;" (assignment_expression "local_c4 = &DAT_005ea7c8" (identifier "local_c4") (= "=") (pointer_expression "&DAT_005ea7c8" (& "&") (identifier "DAT_005ea7c8"))) (; ";")) (if_statement "if (*(int *)(DAT_005ea7c8 + 8) == 0) {\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 8) == 0" (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")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (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 *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }\n  else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_005ea7c8 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(DAT_005ea7c8 + 8) + 0x5934" (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")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_f8 = local_44;\n    local_4c[0] = local_f8;\n    FUN_00072b90(local_4c,"","");\n    puVar17 = auStack_fc;\n    ppuVar10 = extraout_ECX_01;\n  }" ({ "{") (expression_statement "local_f8 = local_44;" (assignment_expression "local_f8 = local_44" (identifier "local_f8") (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_4c[0] = local_f8;" (assignment_expression "local_4c[0] = local_f8" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_f8")) (; ";")) (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 "puVar17 = auStack_fc;" (assignment_expression "puVar17 = auStack_fc" (identifier "puVar17") (= "=") (identifier "auStack_fc")) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_01;" (assignment_expression "ppuVar10 = extraout_ECX_01" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_01")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" (else "else") (compound_statement "{\n    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);\n    local_f8 = local_44;\n    puVar17 = &stack0xffffff00;\n    ppuVar10 = extraout_ECX;\n  }" ({ "{") (expression_statement "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);" (call_expression "(**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_4 + 0x40))" (( "(") (pointer_expression "**(code **)(*param_4 + 0x40)" (* "*") (pointer_expression "*(code **)(*param_4 + 0x40)" (* "*") (cast_expression "(code **)(*param_4 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_4 + 0x40)" (( "(") (binary_expression "*param_4 + 0x40" (pointer_expression "*param_4" (* "*") (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_f8 = local_44;" (assignment_expression "local_f8 = local_44" (identifier "local_f8") (= "=") (identifier "local_44")) (; ";")) (expression_statement "puVar17 = &stack0xffffff00;" (assignment_expression "puVar17 = &stack0xffffff00" (identifier "puVar17") (= "=") (pointer_expression "&stack0xffffff00" (& "&") (identifier "stack0xffffff00"))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX;" (assignment_expression "ppuVar10 = extraout_ECX" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX")) (; ";")) (} "}")))) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" (identifier "pbVar20") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" (identifier "iVar13") (= "=") (pointer_expression "*local_c4" (* "*") (identifier "local_c4"))) (; ";")) (if_statement "if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar13 + 8) == 0" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined ***)(puVar17 + -4) = ppuVar10;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;\n    FUN_002446e0();\n  }" ({ "{") (expression_statement "*(undefined ***)(puVar17 + -4) = ppuVar10;" (assignment_expression "*(undefined ***)(puVar17 + -4) = ppuVar10" (pointer_expression "*(undefined ***)(puVar17 + -4)" (* "*") (cast_expression "(undefined ***)(puVar17 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -4)" (( "(") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "ppuVar10")) (; ";")) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (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 *)(puVar17 + -0x14) = 0x8e857;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e857" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e857")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }\n  else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(iVar13 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar13 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(iVar13 + 8) + 0x5934" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0008d94f:\n    local_be = '\0';\n    local_ec = 0;\n    local_d4 = (undefined **)0x0;\n    local_e8 = 0;\n    local_d0 = 0;\n    local_c8 = 0;\n  }" ({ "{") (labeled_statement "LAB_0008d94f:\n    local_be = '\0';" (statement_identifier "LAB_0008d94f") (: ":") (expression_statement "local_be = '\0';" (assignment_expression "local_be = '\0'" (identifier "local_be") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4 = (undefined **)0x0;" (assignment_expression "local_d4 = (undefined **)0x0" (identifier "local_d4") (= "=") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e8 = 0;" (assignment_expression "local_e8 = 0" (identifier "local_e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" (else "else") (compound_statement "{\n    local_a8 = &local_2c;\n    local_34 = local_a8;\n    pbVar9 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(byte **)(puVar17 + -8) = pbVar9;\n    local_a0 = &local_34;\n    *(byte **)(puVar17 + -0xc) = pbVar20;\n    *(uint ***)(puVar17 + -0x10) = local_a0;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;\n    FUN_00072b90();\n    iVar13 = 5;\n    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;\n    bVar24 = puVar17 == (undefined1 *)0x0;\n    ppuVar10 = local_a4 + -0x67293;\n    puVar18 = local_34;\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);\n    bVar23 = false;\n    bVar22 = (!bVar22 && !bVar24) == bVar22;\n    if (!bVar22) {\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }\n    if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }\n    *(uint ***)(puVar17 + -0xc) = local_a0;\n    local_34 = param_4;\n    local_30 = param_5;\n    local_a0 = *(uint ***)(param_2 + 0x15c);\n    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;\n    local_c8 = FUN_00074520();\n    local_d0 = local_c8 + 0xc;\n    local_e8 = local_c8 + 0x18;\n    ppuVar10 = (undefined **)(local_c8 + 0x24);\n    local_ec = local_c8 + 0x30;\n    iVar13 = *local_c4;\n    local_be = '\x01';\n    local_d4 = ppuVar10;\n  }" ({ "{") (expression_statement "local_a8 = &local_2c;" (assignment_expression "local_a8 = &local_2c" (identifier "local_a8") (= "=") (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 "pbVar9 = (byte *)0xffffffff;" (assignment_expression "pbVar9 = (byte *)0xffffffff" (identifier "pbVar9") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }" (if "if") (parenthesized_expression "(local_4c[0] != (byte *)0x0)" (( "(") (binary_expression "local_4c[0] != (byte *)0x0" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(byte **)(puVar17 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;\n      sVar7 = strlen(*(char **)(puVar17 + -0x10));\n      pbVar9 = pbVar20 + sVar7;\n    }" ({ "{") (expression_statement "*(byte **)(puVar17 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar17 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar17 + -0x10)" (* "*") (cast_expression "(byte **)(puVar17 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e647;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e647" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e647")) (; ";")) (expression_statement "sVar7 = strlen(*(char **)(puVar17 + -0x10));" (assignment_expression "sVar7 = strlen(*(char **)(puVar17 + -0x10))" (identifier "sVar7") (= "=") (call_expression "strlen(*(char **)(puVar17 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar17 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar17 + -0x10)" (* "*") (cast_expression "(char **)(puVar17 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "pbVar9 = pbVar20 + sVar7;" (assignment_expression "pbVar9 = pbVar20 + sVar7" (identifier "pbVar9") (= "=") (binary_expression "pbVar20 + sVar7" (identifier "pbVar20") (+ "+") (identifier "sVar7"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -4)" (( "(") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)(puVar17 + -8) = pbVar9;" (assignment_expression "*(byte **)(puVar17 + -8) = pbVar9" (pointer_expression "*(byte **)(puVar17 + -8)" (* "*") (cast_expression "(byte **)(puVar17 + -8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "local_a0 = &local_34;" (assignment_expression "local_a0 = &local_34" (identifier "local_a0") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar17 + -0xc)" (* "*") (cast_expression "(byte **)(puVar17 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "*(uint ***)(puVar17 + -0x10) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0x10) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0x10)" (* "*") (cast_expression "(uint ***)(puVar17 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e65f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e65f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e65f")) (; ";")) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" (identifier "FUN_00072b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar13 = 5;" (assignment_expression "iVar13 = 5" (identifier "iVar13") (= "=") (number_literal "5")) (; ";")) (expression_statement "bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;" (assignment_expression "bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10" (identifier "bVar22") (= "=") (binary_expression "(undefined1 *)0xffffffef < puVar17 + -0x10" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")))) (; ";")) (expression_statement "bVar24 = puVar17 == (undefined1 *)0x0;" (assignment_expression "bVar24 = puVar17 == (undefined1 *)0x0" (identifier "bVar24") (= "=") (binary_expression "puVar17 == (undefined1 *)0x0" (identifier "puVar17") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "ppuVar10 = local_a4 + -0x67293;" (assignment_expression "ppuVar10 = local_a4 + -0x67293" (identifier "ppuVar10") (= "=") (binary_expression "local_a4 + -0x67293" (identifier "local_a4") (+ "+") (number_literal "-0x67293"))) (; ";")) (expression_statement "puVar18 = local_34;" (assignment_expression "puVar18 = local_34" (identifier "puVar18") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    } while (bVar24);" (do "do") (compound_statement "{\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;\n      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;\n      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);\n      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n    }" ({ "{") (if_statement "if (iVar13 == 0) break;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;" (assignment_expression "bVar22 = *(byte *)ppuVar10 < (byte)*puVar18" (identifier "bVar22") (= "=") (binary_expression "*(byte *)ppuVar10 < (byte)*puVar18" (pointer_expression "*(byte *)ppuVar10" (* "*") (cast_expression "(byte *)ppuVar10" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar10"))) (< "<") (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar18")))) (; ";")) (expression_statement "bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;" (assignment_expression "bVar24 = *(byte *)ppuVar10 == (byte)*puVar18" (identifier "bVar24") (= "=") (binary_expression "*(byte *)ppuVar10 == (byte)*puVar18" (pointer_expression "*(byte *)ppuVar10" (* "*") (cast_expression "(byte *)ppuVar10" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar10"))) (== "==") (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar18")))) (; ";")) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + (uint)bVar25 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar10 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar10 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (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 "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" (identifier "puVar18") (= "=") (cast_expression "(uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + (uint)bVar25 * -2 + 1)" (( "(") (binary_expression "(int)puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "(int)puVar18 + (uint)bVar25 * -2" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (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      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n      ppuVar10 = (undefined **)0xf;\n      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);\n      puVar18 = local_34;\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);\n      if ((!bVar23 && !bVar22) != bVar23) {\n        if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }\n    }" ({ "{") (expression_statement "ppuVar10 = (undefined **)0xf;" (assignment_expression "ppuVar10 = (undefined **)0xf" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)0xf" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0xf"))) (; ";")) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19ca46);" (assignment_expression "pbVar20 = (byte *)((int)local_a4 + -0x19ca46)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)((int)local_a4 + -0x19ca46)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (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 "puVar18 = local_34;" (assignment_expression "puVar18 = local_34" (identifier "puVar18") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      } while (bVar22);" (do "do") (compound_statement "{\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar23 = *pbVar20 < (byte)*puVar18;\n        bVar22 = *pbVar20 == (byte)*puVar18;\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);\n      }" ({ "{") (if_statement "if (ppuVar10 == (undefined **)0x0) break;" (if "if") (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar10 == (undefined **)0x0" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + -1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + -1)" (( "(") (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar23 = *pbVar20 < (byte)*puVar18;" (assignment_expression "bVar23 = *pbVar20 < (byte)*puVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar20 < (byte)*puVar18" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar18")))) (; ";")) (expression_statement "bVar22 = *pbVar20 == (byte)*puVar18;" (assignment_expression "bVar22 = *pbVar20 == (byte)*puVar18" (identifier "bVar22") (= "=") (binary_expression "*pbVar20 == (byte)*puVar18" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (binary_expression "(byte)*puVar18" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar18")))) (; ";")) (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"))) (; ";")) (expression_statement "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" (identifier "puVar18") (= "=") (cast_expression "(uint *)((int)puVar18 + (uint)bVar25 * -2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + (uint)bVar25 * -2 + 1)" (( "(") (binary_expression "(int)puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "(int)puVar18 + (uint)bVar25 * -2" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (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          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\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          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }\n        goto LAB_0008d94f;\n      }" ({ "{") (if_statement "if (local_34 == local_a8) {\n          iVar13 = *local_c4;\n        }\n        else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" (if "if") (parenthesized_expression "(local_34 == local_a8)" (( "(") (binary_expression "local_34 == local_a8" (identifier "local_34") (== "==") (identifier "local_a8")) () ")")) (compound_statement "{\n          iVar13 = *local_c4;\n        }" ({ "{") (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" (identifier "iVar13") (= "=") (pointer_expression "*local_c4" (* "*") (identifier "local_c4"))) (; ";")) (} "}")) (else_clause "else {\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" (else "else") (compound_statement "{\n          *(uint **)(puVar17 + -0x10) = local_34;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;\n          FUN_003ae080();\n          iVar13 = *local_c4;\n          ppuVar10 = extraout_ECX_10;\n        }" ({ "{") (expression_statement "*(uint **)(puVar17 + -0x10) = local_34;" (assignment_expression "*(uint **)(puVar17 + -0x10) = local_34" (pointer_expression "*(uint **)(puVar17 + -0x10)" (* "*") (cast_expression "(uint **)(puVar17 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e733;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e733" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e733")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" (identifier "iVar13") (= "=") (pointer_expression "*local_c4" (* "*") (identifier "local_c4"))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_10;" (assignment_expression "ppuVar10 = extraout_ECX_10" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_10")) (; ";")) (} "}")))) (goto_statement "goto LAB_0008d94f;" (goto "goto") (statement_identifier "LAB_0008d94f") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_34 != local_a8) {\n      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\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      *(uint **)(puVar17 + -0x10) = local_34;\n      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;\n      FUN_003ae080();\n    }" ({ "{") (expression_statement "*(uint **)(puVar17 + -0x10) = local_34;" (assignment_expression "*(uint **)(puVar17 + -0x10) = local_34" (pointer_expression "*(uint **)(puVar17 + -0x10)" (* "*") (cast_expression "(uint **)(puVar17 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e8ab" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e8ab")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (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 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(uint ***)(param_2 + 0x15c)" (* "*") (cast_expression "(uint ***)(param_2 + 0x15c)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (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 "*(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;" (assignment_expression "*(uint ***)(puVar17 + -0x10) = local_a0 + 0x15" (pointer_expression "*(uint ***)(puVar17 + -0x10)" (* "*") (cast_expression "(uint ***)(puVar17 + -0x10)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_a0 + 0x15" (identifier "local_a0") (+ "+") (number_literal "0x15"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e6d4" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e6d4")) (; ";")) (expression_statement "local_c8 = FUN_00074520();" (assignment_expression "local_c8 = FUN_00074520()" (identifier "local_c8") (= "=") (call_expression "FUN_00074520()" (identifier "FUN_00074520") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_d0 = local_c8 + 0xc;" (assignment_expression "local_d0 = local_c8 + 0xc" (identifier "local_d0") (= "=") (binary_expression "local_c8 + 0xc" (identifier "local_c8") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "local_e8 = local_c8 + 0x18;" (assignment_expression "local_e8 = local_c8 + 0x18" (identifier "local_e8") (= "=") (binary_expression "local_c8 + 0x18" (identifier "local_c8") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "ppuVar10 = (undefined **)(local_c8 + 0x24);" (assignment_expression "ppuVar10 = (undefined **)(local_c8 + 0x24)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)(local_c8 + 0x24)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_c8 + 0x24)" (( "(") (binary_expression "local_c8 + 0x24" (identifier "local_c8") (+ "+") (number_literal "0x24")) () ")")))) (; ";")) (expression_statement "local_ec = local_c8 + 0x30;" (assignment_expression "local_ec = local_c8 + 0x30" (identifier "local_ec") (= "=") (binary_expression "local_c8 + 0x30" (identifier "local_c8") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "iVar13 = *local_c4;" (assignment_expression "iVar13 = *local_c4" (identifier "iVar13") (= "=") (pointer_expression "*local_c4" (* "*") (identifier "local_c4"))) (; ";")) (expression_statement "local_be = '\x01';" (assignment_expression "local_be = '\x01'" (identifier "local_be") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "local_d4 = ppuVar10;" (assignment_expression "local_d4 = ppuVar10" (identifier "local_d4") (= "=") (identifier "ppuVar10")) (; ";")) (} "}")))) (if_statement "if (*(int *)(iVar13 + 8) == 0) {\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar13 + 8) == 0" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar17 + -4) = 0;\n    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;\n    FUN_002446e0();\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -4)" (( "(") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (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 *)(puVar17 + -0x14) = 0x8e873;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e873" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e873")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_bf = '\0';" (assignment_expression "local_bf = '\0'" (identifier "local_bf") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2)" (( "(") (binary_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar13 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(iVar13 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar13 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(iVar13 + 8) + 0x5934" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar17 + -0x10) = param_1;\n    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;\n    local_bf = FUN_000752e0();\n    bVar22 = false;\n    bVar24 = local_bf == '\0';\n    ppuVar10 = extraout_ECX_09;\n    if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar17 + -0x10) = param_1;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = param_1" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e56b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e56b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e56b")) (; ";")) (expression_statement "local_bf = FUN_000752e0();" (assignment_expression "local_bf = FUN_000752e0()" (identifier "local_bf") (= "=") (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_bf == '\0';" (assignment_expression "bVar24 = local_bf == '\0'" (identifier "bVar24") (= "=") (binary_expression "local_bf == '\0'" (identifier "local_bf") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_09;" (assignment_expression "ppuVar10 = extraout_ECX_09" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_09")) (; ";")) (if_statement "if (!bVar24) {\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n      ppuVar10 = (undefined **)0xc;\n      local_bf = '\0';\n      ppuVar19 = local_a4 + -0x66894;\n      pbVar20 = local_4c[0];\n      do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "ppuVar10 = (undefined **)0xc;" (assignment_expression "ppuVar10 = (undefined **)0xc" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)0xc" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "local_bf = '\0';" (assignment_expression "local_bf = '\0'" (identifier "local_bf") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "ppuVar19 = local_a4 + -0x66894;" (assignment_expression "ppuVar19 = local_a4 + -0x66894" (identifier "ppuVar19") (= "=") (binary_expression "local_a4 + -0x66894" (identifier "local_a4") (+ "+") (number_literal "-0x66894"))) (; ";")) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" (identifier "pbVar20") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n      } while (bVar24);" (do "do") (compound_statement "{\n        if (ppuVar10 == (undefined **)0x0) break;\n        ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n        bVar22 = *(byte *)ppuVar19 < *pbVar20;\n        bVar24 = *(byte *)ppuVar19 == *pbVar20;\n        ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n      }" ({ "{") (if_statement "if (ppuVar10 == (undefined **)0x0) break;" (if "if") (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar10 == (undefined **)0x0" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + -1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + -1)" (( "(") (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar22 = *(byte *)ppuVar19 < *pbVar20;" (assignment_expression "bVar22 = *(byte *)ppuVar19 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*(byte *)ppuVar19 < *pbVar20" (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar24 = *(byte *)ppuVar19 == *pbVar20;" (assignment_expression "bVar24 = *(byte *)ppuVar19 == *pbVar20" (identifier "bVar24") (= "=") (binary_expression "*(byte *)ppuVar19 == *pbVar20" (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar19 + (uint)bVar25 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar19")) (+ "+") (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        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n        ppuVar10 = (undefined **)0x11;\n        pbVar20 = (byte *)((int)local_a4 + -0x19a243);\n        pbVar9 = local_4c[0];\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        bVar24 = false;\n        bVar22 = (!bVar23 && !bVar22) == bVar23;\n        if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "ppuVar10 = (undefined **)0x11;" (assignment_expression "ppuVar10 = (undefined **)0x11" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)0x11" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x11"))) (; ";")) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a243);" (assignment_expression "pbVar20 = (byte *)((int)local_a4 + -0x19a243)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)((int)local_a4 + -0x19a243)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" (identifier "pbVar9") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" (do "do") (compound_statement "{\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar23 = *pbVar20 < *pbVar9;\n          bVar22 = *pbVar20 == *pbVar9;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (ppuVar10 == (undefined **)0x0) break;" (if "if") (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar10 == (undefined **)0x0" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + -1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + -1)" (( "(") (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar23 = *pbVar20 < *pbVar9;" (assignment_expression "bVar23 = *pbVar20 < *pbVar9" (identifier "bVar23") (= "=") (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" (identifier "bVar22") (= "=") (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (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"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar25 * -2" (identifier "pbVar9") (+ "+") (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"))) (; ";")) (if_statement "if (!bVar22) {\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n          ppuVar10 = (undefined **)0xc;\n          pbVar20 = (byte *)((int)local_a4 + -0x19a231);\n          pbVar9 = local_4c[0];\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar24 && !bVar22) == bVar24;\n          if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }\n        }" ({ "{") (expression_statement "ppuVar10 = (undefined **)0xc;" (assignment_expression "ppuVar10 = (undefined **)0xc" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)0xc" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0xc"))) (; ";")) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a231);" (assignment_expression "pbVar20 = (byte *)((int)local_a4 + -0x19a231)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)((int)local_a4 + -0x19a231)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" (identifier "pbVar9") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" (do "do") (compound_statement "{\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar24 = *pbVar20 < *pbVar9;\n            bVar22 = *pbVar20 == *pbVar9;\n            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (ppuVar10 == (undefined **)0x0) break;" (if "if") (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar10 == (undefined **)0x0" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + -1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + -1)" (( "(") (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar24 = *pbVar20 < *pbVar9;" (assignment_expression "bVar24 = *pbVar20 < *pbVar9" (identifier "bVar24") (= "=") (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" (identifier "bVar22") (= "=") (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (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"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar25 * -2" (identifier "pbVar9") (+ "+") (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"))) (; ";")) (if_statement "if (!bVar22) {\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n            ppuVar10 = (undefined **)0x11;\n            ppuVar19 = local_a4 + -0x66889;\n            pbVar20 = local_4c[0];\n            do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);\n            bVar24 = false;\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }\n          }" ({ "{") (expression_statement "ppuVar10 = (undefined **)0x11;" (assignment_expression "ppuVar10 = (undefined **)0x11" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)0x11" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x11"))) (; ";")) (expression_statement "ppuVar19 = local_a4 + -0x66889;" (assignment_expression "ppuVar19 = local_a4 + -0x66889" (identifier "ppuVar19") (= "=") (binary_expression "local_a4 + -0x66889" (identifier "local_a4") (+ "+") (number_literal "-0x66889"))) (; ";")) (expression_statement "pbVar20 = local_4c[0];" (assignment_expression "pbVar20 = local_4c[0]" (identifier "pbVar20") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            } while (bVar22);" (do "do") (compound_statement "{\n              if (ppuVar10 == (undefined **)0x0) break;\n              ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n              bVar23 = *(byte *)ppuVar19 < *pbVar20;\n              bVar22 = *(byte *)ppuVar19 == *pbVar20;\n              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);\n              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n            }" ({ "{") (if_statement "if (ppuVar10 == (undefined **)0x0) break;" (if "if") (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar10 == (undefined **)0x0" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + -1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + -1)" (( "(") (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar23 = *(byte *)ppuVar19 < *pbVar20;" (assignment_expression "bVar23 = *(byte *)ppuVar19 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*(byte *)ppuVar19 < *pbVar20" (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *(byte *)ppuVar19 == *pbVar20;" (assignment_expression "bVar22 = *(byte *)ppuVar19 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*(byte *)ppuVar19 == *pbVar20" (pointer_expression "*(byte *)ppuVar19" (* "*") (cast_expression "(byte *)ppuVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);" (assignment_expression "ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar19 + (uint)bVar25 * -2 + 1)" (( "(") (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2 + 1" (binary_expression "(int)ppuVar19 + (uint)bVar25 * -2" (cast_expression "(int)ppuVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar19")) (+ "+") (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 "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"))) (; ";")) (if_statement "if (!bVar22) {\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n              ppuVar10 = (undefined **)0x9;\n              pbVar20 = (byte *)((int)local_a4 + -0x19a212);\n              pbVar9 = local_4c[0];\n              do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);\n              local_bf = (!bVar24 && !bVar22) != bVar24;\n            }" ({ "{") (expression_statement "ppuVar10 = (undefined **)0x9;" (assignment_expression "ppuVar10 = (undefined **)0x9" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)0x9" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x9"))) (; ";")) (expression_statement "pbVar20 = (byte *)((int)local_a4 + -0x19a212);" (assignment_expression "pbVar20 = (byte *)((int)local_a4 + -0x19a212)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)((int)local_a4 + -0x19a212)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (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 "pbVar9 = local_4c[0];" (assignment_expression "pbVar9 = local_4c[0]" (identifier "pbVar9") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              } while (bVar22);" (do "do") (compound_statement "{\n                if (ppuVar10 == (undefined **)0x0) break;\n                ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n                bVar24 = *pbVar20 < *pbVar9;\n                bVar22 = *pbVar20 == *pbVar9;\n                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n              }" ({ "{") (if_statement "if (ppuVar10 == (undefined **)0x0) break;" (if "if") (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar10 == (undefined **)0x0" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + -1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + -1)" (( "(") (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar24 = *pbVar20 < *pbVar9;" (assignment_expression "bVar24 = *pbVar20 < *pbVar9" (identifier "bVar24") (= "=") (binary_expression "*pbVar20 < *pbVar9" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar22 = *pbVar20 == *pbVar9;" (assignment_expression "bVar22 = *pbVar20 == *pbVar9" (identifier "bVar22") (= "=") (binary_expression "*pbVar20 == *pbVar9" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (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"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar25 * -2" (identifier "pbVar9") (+ "+") (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_bf = (!bVar24 && !bVar22) != bVar24;" (assignment_expression "local_bf = (!bVar24 && !bVar22) != bVar24" (identifier "local_bf") (= "=") (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"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (param_8 != 0) {\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_cc = (byte *)0x0;\n    local_d8 = local_94;\n    local_f4 = &local_78;\n    local_dc = 0;\n    do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);\n  }" ({ "{") (expression_statement "local_cc = (byte *)0x0;" (assignment_expression "local_cc = (byte *)0x0" (identifier "local_cc") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_d8 = local_94;" (assignment_expression "local_d8 = local_94" (identifier "local_d8") (= "=") (identifier "local_94")) (; ";")) (expression_statement "local_f4 = &local_78;" (assignment_expression "local_f4 = &local_78" (identifier "local_f4") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" (identifier "local_dc") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    } while (param_8 != local_dc);" (do "do") (compound_statement "{\n      local_f0 = (undefined **)param_7[2];\n      local_b0 = param_7[5];\n      uVar15 = param_7[3];\n      local_b4 = param_7[4];\n      if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }\nLAB_0008db0d:\n      local_dc = local_dc + 1;\n      param_7 = param_7 + 6;\n    }" ({ "{") (expression_statement "local_f0 = (undefined **)param_7[2];" (assignment_expression "local_f0 = (undefined **)param_7[2]" (identifier "local_f0") (= "=") (cast_expression "(undefined **)param_7[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_b0 = param_7[5];" (assignment_expression "local_b0 = param_7[5]" (identifier "local_b0") (= "=") (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar15 = param_7[3];" (assignment_expression "uVar15 = param_7[3]" (identifier "uVar15") (= "=") (subscript_expression "param_7[3]" (identifier "param_7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_b4 = param_7[4];" (assignment_expression "local_b4 = param_7[4]" (identifier "local_b4") (= "=") (subscript_expression "param_7[4]" (identifier "param_7") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (uVar15 < param_11) {\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" (if "if") (parenthesized_expression "(uVar15 < param_11)" (( "(") (binary_expression "uVar15 < param_11" (identifier "uVar15") (< "<") (identifier "param_11")) () ")")) (compound_statement "{\n        if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }\n        local_ac = (uint *)(param_12 + uVar15 * 0x18);\n        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);\n        if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }\n        if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }\n        if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (param_12 == 0) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\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 ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0xea;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65e39" (identifier "local_a4") (+ "+") (number_literal "-0x65e39"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xea")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (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 *)(puVar17 + -0x14) = 0x8e764;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e764" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e764")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_ac = (uint *)(param_12 + uVar15 * 0x18);" (assignment_expression "local_ac = (uint *)(param_12 + uVar15 * 0x18)" (identifier "local_ac") (= "=") (cast_expression "(uint *)(param_12 + uVar15 * 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_12 + uVar15 * 0x18)" (( "(") (binary_expression "param_12 + uVar15 * 0x18" (identifier "param_12") (+ "+") (binary_expression "uVar15 * 0x18" (identifier "uVar15") (* "*") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);" (assignment_expression "local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6)" (identifier "local_a8") (= "=") (binary_expression "(uint *)(uint)*(ushort *)((int)local_ac + 6)" (cast_expression "(uint *)(uint)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)((int)local_ac + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_ac + 6)" (( "(") (binary_expression "(int)local_ac + 6" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (+ "+") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if (local_a8 < (uint *)0xff00) {\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }\n        else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" (if "if") (parenthesized_expression "(local_a8 < (uint *)0xff00)" (( "(") (binary_expression "local_a8 < (uint *)0xff00" (identifier "local_a8") (< "<") (cast_expression "(uint *)0xff00" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xff00"))) () ")")) (compound_statement "{\nLAB_0008db84:\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }\n        }" ({ "{") (labeled_statement "LAB_0008db84:\n          puVar18 = (uint *)local_ac[2];" (statement_identifier "LAB_0008db84") (: ":") (expression_statement "puVar18 = (uint *)local_ac[2];" (assignment_expression "puVar18 = (uint *)local_ac[2]" (identifier "puVar18") (= "=") (cast_expression "(uint *)local_ac[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_ac[2]" (identifier "local_ac") ([ "[") (number_literal "2") (] "]")))) (; ";"))) (expression_statement "uVar15 = local_ac[3];" (assignment_expression "uVar15 = local_ac[3]" (identifier "uVar15") (= "=") (subscript_expression "local_ac[3]" (identifier "local_ac") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_bc = (int)puVar18 + local_b4;" (assignment_expression "local_bc = (int)puVar18 + local_b4" (identifier "local_bc") (= "=") (binary_expression "(int)puVar18 + local_b4" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (identifier "local_b4"))) (; ";")) (expression_statement "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);" (assignment_expression "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" (identifier "local_b8") (= "=") (binary_expression "local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" (binary_expression "local_b0 + uVar15" (identifier "local_b0") (+ "+") (identifier "uVar15")) (+ "+") (cast_expression "(uint)CARRY4(local_b4,(uint)puVar18)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_b4,(uint)puVar18)" (identifier "CARRY4") (argument_list "(local_b4,(uint)puVar18)" (( "(") (identifier "local_b4") (, ",") (cast_expression "(uint)puVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar18")) () ")")))))) (; ";")) (if_statement "if (local_be != '\0') {\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\n          }" (if "if") (parenthesized_expression "(local_be != '\0')" (( "(") (binary_expression "local_be != '\0'" (identifier "local_be") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_34 = param_4;\n            local_30 = local_a8;\n            local_a0 = &local_34;\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_c8;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;\n            FUN_00073b00();\n            bVar22 = true;\n            goto LAB_0008da46;\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 "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dbe0" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8dbe0")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" (identifier "bVar22") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0008da46;" (goto "goto") (statement_identifier "LAB_0008da46") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" (else "else") (compound_statement "{\n          if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }\n          puVar18 = (uint *)local_ac[2];\n          uVar15 = local_ac[3];\n          local_bc = (int)puVar18 + local_b4;\n          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);\n          if (local_be == '\0') goto LAB_0008db0d;\n          local_a0 = &local_34;\n          local_34 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          local_30 = (uint *)0x0;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;\n          FUN_00073b00();\n          bVar22 = false;\nLAB_0008da46:\n          local_bd = (byte)local_ac[1];\n          if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;\n          local_34 = puVar18;\n          local_30 = (uint *)uVar15;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_00;\n          if (!bVar22) goto LAB_0008db0d;\n        }" ({ "{") (if_statement "if (local_a8 == (uint *)0xffff) {\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }" (if "if") (parenthesized_expression "(local_a8 == (uint *)0xffff)" (( "(") (binary_expression "local_a8 == (uint *)0xffff" (identifier "local_a8") (== "==") (cast_expression "(uint *)0xffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffff"))) () ")")) (compound_statement "{\n            uVar8 = param_4[0xc];\n            if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }\n            *(uint *)(puVar17 + -8) = uVar15;\n            *(uint **)(puVar17 + -0xc) = param_4;\n            *(uint *)(puVar17 + -0x10) = uVar8;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;\n            local_a8 = (uint *)FUN_0028b7d0();\n            ppuVar10 = extraout_ECX_02;\n            goto LAB_0008db84;\n          }" ({ "{") (expression_statement "uVar8 = param_4[0xc];" (assignment_expression "uVar8 = param_4[0xc]" (identifier "uVar8") (= "=") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if (uVar8 == 0) {\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar8 = *param_4;\n              *(uint **)(puVar17 + -0x10) = param_4;\n              pcVar5 = *(code **)(uVar8 + 0x6c);\n              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;\n              uVar8 = (*pcVar5)();\n              param_4[0xc] = uVar8;\n            }" ({ "{") (expression_statement "uVar8 = *param_4;" (assignment_expression "uVar8 = *param_4" (identifier "uVar8") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "*(uint **)(puVar17 + -0x10) = param_4;" (assignment_expression "*(uint **)(puVar17 + -0x10) = param_4" (pointer_expression "*(uint **)(puVar17 + -0x10)" (* "*") (cast_expression "(uint **)(puVar17 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcVar5 = *(code **)(uVar8 + 0x6c);" (assignment_expression "pcVar5 = *(code **)(uVar8 + 0x6c)" (identifier "pcVar5") (= "=") (pointer_expression "*(code **)(uVar8 + 0x6c)" (* "*") (cast_expression "(code **)(uVar8 + 0x6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar8 + 0x6c)" (( "(") (binary_expression "uVar8 + 0x6c" (identifier "uVar8") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e35e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e35e" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e35e")) (; ";")) (expression_statement "uVar8 = (*pcVar5)();" (assignment_expression "uVar8 = (*pcVar5)()" (identifier "uVar8") (= "=") (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" (( "(") (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_4[0xc] = uVar8;" (assignment_expression "param_4[0xc] = uVar8" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar17 + -8) = uVar15;" (assignment_expression "*(uint *)(puVar17 + -8) = uVar15" (pointer_expression "*(uint *)(puVar17 + -8)" (* "*") (cast_expression "(uint *)(puVar17 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(uint **)(puVar17 + -0xc) = param_4;" (assignment_expression "*(uint **)(puVar17 + -0xc) = param_4" (pointer_expression "*(uint **)(puVar17 + -0xc)" (* "*") (cast_expression "(uint **)(puVar17 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(uint *)(puVar17 + -0x10) = uVar8;" (assignment_expression "*(uint *)(puVar17 + -0x10) = uVar8" (pointer_expression "*(uint *)(puVar17 + -0x10)" (* "*") (cast_expression "(uint *)(puVar17 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dc69;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dc69" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8dc69")) (; ";")) (expression_statement "local_a8 = (uint *)FUN_0028b7d0();" (assignment_expression "local_a8 = (uint *)FUN_0028b7d0()" (identifier "local_a8") (= "=") (cast_expression "(uint *)FUN_0028b7d0()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0028b7d0()" (identifier "FUN_0028b7d0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_02;" (assignment_expression "ppuVar10 = extraout_ECX_02" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_02")) (; ";")) (goto_statement "goto LAB_0008db84;" (goto "goto") (statement_identifier "LAB_0008db84") (; ";")) (} "}"))) (expression_statement "puVar18 = (uint *)local_ac[2];" (assignment_expression "puVar18 = (uint *)local_ac[2]" (identifier "puVar18") (= "=") (cast_expression "(uint *)local_ac[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_ac[2]" (identifier "local_ac") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar15 = local_ac[3];" (assignment_expression "uVar15 = local_ac[3]" (identifier "uVar15") (= "=") (subscript_expression "local_ac[3]" (identifier "local_ac") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_bc = (int)puVar18 + local_b4;" (assignment_expression "local_bc = (int)puVar18 + local_b4" (identifier "local_bc") (= "=") (binary_expression "(int)puVar18 + local_b4" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (identifier "local_b4"))) (; ";")) (expression_statement "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);" (assignment_expression "local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" (identifier "local_b8") (= "=") (binary_expression "local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18)" (binary_expression "local_b0 + uVar15" (identifier "local_b0") (+ "+") (identifier "uVar15")) (+ "+") (cast_expression "(uint)CARRY4(local_b4,(uint)puVar18)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_b4,(uint)puVar18)" (identifier "CARRY4") (argument_list "(local_b4,(uint)puVar18)" (( "(") (identifier "local_b4") (, ",") (cast_expression "(uint)puVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar18")) () ")")))))) (; ";")) (if_statement "if (local_be == '\0') goto LAB_0008db0d;" (if "if") (parenthesized_expression "(local_be == '\0')" (( "(") (binary_expression "local_be == '\0'" (identifier "local_be") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0008db0d;" (goto "goto") (statement_identifier "LAB_0008db0d") (; ";"))) (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 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" (identifier "local_34") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8da41;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8da41" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8da41")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_0008da46:\n          local_bd = (byte)local_ac[1];" (statement_identifier "LAB_0008da46") (: ":") (expression_statement "local_bd = (byte)local_ac[1];" (assignment_expression "local_bd = (byte)local_ac[1]" (identifier "local_bd") (= "=") (cast_expression "(byte)local_ac[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_ac[1]" (identifier "local_ac") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (if_statement "if ((local_bd & 0xf) == 3) {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }\n          else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" (if "if") (parenthesized_expression "((local_bd & 0xf) == 3)" (( "(") (binary_expression "(local_bd & 0xf) == 3" (parenthesized_expression "(local_bd & 0xf)" (( "(") (binary_expression "local_bd & 0xf" (identifier "local_bd") (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0xffffffff;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;\n            FUN_00073ca0();\n          }" ({ "{") (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "local_34 = (uint *)0xffffffff;" (assignment_expression "local_34 = (uint *)0xffffffff" (identifier "local_34") (= "=") (cast_expression "(uint *)0xffffffff" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e34b;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e34b" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e34b")) (; ";")) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" (identifier "FUN_00073ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" (else "else") (compound_statement "{\n            *(uint ***)(puVar17 + -0xc) = local_a0;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            local_34 = (uint *)0x0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;\n            FUN_00073ca0();\n          }" ({ "{") (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" (identifier "local_34") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8da7c;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8da7c" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8da7c")) (; ";")) (expression_statement "FUN_00073ca0();" (call_expression "FUN_00073ca0()" (identifier "FUN_00073ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_e8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_e8" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_e8")) (; ";")) (expression_statement "local_2c = local_b4;" (assignment_expression "local_2c = local_b4" (identifier "local_2c") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "local_28 = local_b0;" (assignment_expression "local_28 = local_b0" (identifier "local_28") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8daab;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8daab" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8daab")) (; ";")) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" (identifier "local_34") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "local_30 = (uint *)uVar15;" (assignment_expression "local_30 = (uint *)uVar15" (identifier "local_30") (= "=") (cast_expression "(uint *)uVar15" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" (identifier "FUN_00073e70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar18 = (uint *)*param_7;" (assignment_expression "puVar18 = (uint *)*param_7" (identifier "puVar18") (= "=") (cast_expression "(uint *)*param_7" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7")))) (; ";")) (if_statement "if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(param_7[1] != 0)" (( "(") (binary_expression "param_7[1] != 0" (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b70" (identifier "local_a4") (+ "+") (number_literal "-0x65b70"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_a4 + -0x672d3" (identifier "local_a4") (+ "+") (number_literal "-0x672d3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e7a3" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e7a3")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar2 = (undefined4 *)local_d4[1];" (assignment_expression "puVar2 = (undefined4 *)local_d4[1]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)local_d4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_d4[1]" (identifier "local_d4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" (identifier "local_34") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" (if "if") (parenthesized_expression "(puVar2 == (undefined4 *)local_d4[2])" (( "(") (binary_expression "puVar2 == (undefined4 *)local_d4[2]" (identifier "puVar2") (== "==") (cast_expression "(undefined4 *)local_d4[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_d4[2]" (identifier "local_d4") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;\n            FUN_00072a40();\n          }" ({ "{") (expression_statement "*(uint ***)(puVar17 + -8) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -8) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -8)" (* "*") (cast_expression "(uint ***)(puVar17 + -8)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_d4;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_d4" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_d4")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e325;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e325" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e325")) (; ";")) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" (identifier "FUN_00072a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" (else "else") (compound_statement "{\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" ({ "{") (expression_statement "*puVar2 = puVar18;" (assignment_expression "*puVar2 = puVar18" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "puVar18")) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4[1] = (undefined *)(puVar2 + 2);" (assignment_expression "local_d4[1] = (undefined *)(puVar2 + 2)" (subscript_expression "local_d4[1]" (identifier "local_d4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined *)(puVar2 + 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 2)" (( "(") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" (identifier "local_54") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(uint ***)(puVar17 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_ec")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8db02;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8db02" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8db02")) (; ";")) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" (identifier "FUN_00074020") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_00;" (assignment_expression "ppuVar10 = extraout_ECX_00" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_00")) (; ";")) (if_statement "if (!bVar22) goto LAB_0008db0d;" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_0008db0d;" (goto "goto") (statement_identifier "LAB_0008db0d") (; ";"))) (} "}")))) (if_statement "if (local_bf != '\0') {\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(local_bf != '\0')" (( "(") (binary_expression "local_bf != '\0'" (identifier "local_bf") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);\n          if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }\n        }" ({ "{") (expression_statement "local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);" (assignment_expression "local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1])" (identifier "local_a0") (= "=") (cast_expression "(uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1])" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_a0._1_3_,(byte)local_ac[1])" (identifier "CONCAT31") (argument_list "(local_a0._1_3_,(byte)local_ac[1])" (( "(") (field_expression "local_a0._1_3_" (identifier "local_a0") (. ".") (field_identifier "_1_3_")) (, ",") (cast_expression "(byte)local_ac[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_ac[1]" (identifier "local_ac") ([ "[") (number_literal "1") (] "]"))) () ")"))))) (; ";")) (if_statement "if (((byte)local_ac[1] & 0xf) != 1) {\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }" (if "if") (parenthesized_expression "(((byte)local_ac[1] & 0xf) != 1)" (( "(") (binary_expression "((byte)local_ac[1] & 0xf) != 1" (parenthesized_expression "((byte)local_ac[1] & 0xf)" (( "(") (binary_expression "(byte)local_ac[1] & 0xf" (cast_expression "(byte)local_ac[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_ac[1]" (identifier "local_ac") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n            if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }\n            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }\n          }" ({ "{") (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }" (if "if") (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" (* "*") (cast_expression "(int *)(*local_c4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_c4 + 8)" (( "(") (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" (* "*") (identifier "local_c4")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined ***)(puVar17 + -4) = ppuVar10;\n              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n              *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;\n              FUN_002446e0();\n            }" ({ "{") (expression_statement "*(undefined ***)(puVar17 + -4) = ppuVar10;" (assignment_expression "*(undefined ***)(puVar17 + -4) = ppuVar10" (pointer_expression "*(undefined ***)(puVar17 + -4)" (* "*") (cast_expression "(undefined ***)(puVar17 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -4)" (( "(") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "ppuVar10")) (; ";")) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (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 *)(puVar17 + -0x14) = 0x8e81f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e81f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e81f")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }\n            else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" (* "*") (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x1a25)" (( "(") (binary_expression "*(int *)(*local_c4 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_c4 + 8)" (* "*") (cast_expression "(int *)(*local_c4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_c4 + 8)" (( "(") (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" (* "*") (identifier "local_c4")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              ppuVar10 = local_f0;\n              if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }\n            }" ({ "{") (expression_statement "ppuVar10 = local_f0;" (assignment_expression "ppuVar10 = local_f0" (identifier "ppuVar10") (= "=") (identifier "local_f0")) (; ";")) (if_statement "if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }" (if "if") (parenthesized_expression "(local_f0 < (undefined **)0x2b)" (( "(") (binary_expression "local_f0 < (undefined **)0x2b" (identifier "local_f0") (< "<") (cast_expression "(undefined **)0x2b" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x2b"))) () ")")) (compound_statement "{\n                    \n                    \n                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();\n                return;\n              }" ({ "{") (expression_statement "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))" (( "(") (pointer_expression "*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" (* "*") (cast_expression "(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4)" (( "(") (binary_expression "local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4" (subscript_expression "local_a4[(int)((int)local_f0 + -0x65f45)]" (identifier "local_a4") ([ "[") (cast_expression "(int)((int)local_f0 + -0x65f45)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_f0 + -0x65f45)" (( "(") (binary_expression "(int)local_f0 + -0x65f45" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (+ "+") (number_literal "-0x65f45")) () ")"))) (] "]")) (+ "+") (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4"))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" (else "else") (compound_statement "{\n              local_a0 = *(uint ***)(param_2 + 0x15c);\n              local_6c = param_4;\n              local_68 = (uint)*(ushort *)((int)local_ac + 6);\n              *(undefined4 *)(puVar17 + -0xc) = 1;\n              *(undefined4 *)(puVar17 + -0x10) = 0;\n              *(uint ****)(puVar17 + -0x14) = &local_8c;\n              local_8c = local_a0 + 0xd;\n              *(uint ***)(puVar17 + -0x18) = &local_6c;\n              *(uint ***)(puVar17 + -0x1c) = local_8c;\n              *(undefined1 **)(puVar17 + -0x20) = local_d8;\n              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;\n              FUN_00074280();\n              puVar17 = puVar17 + -4;\n              ppuVar10 = extraout_ECX_08;\n            }" ({ "{") (expression_statement "local_a0 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(uint ***)(param_2 + 0x15c)" (* "*") (cast_expression "(uint ***)(param_2 + 0x15c)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (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_6c = param_4;" (assignment_expression "local_6c = param_4" (identifier "local_6c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_68 = (uint)*(ushort *)((int)local_ac + 6);" (assignment_expression "local_68 = (uint)*(ushort *)((int)local_ac + 6)" (identifier "local_68") (= "=") (binary_expression "(uint)*(ushort *)((int)local_ac + 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)local_ac + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_ac + 6)" (( "(") (binary_expression "(int)local_ac + 6" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint ****)(puVar17 + -0x14) = &local_8c;" (assignment_expression "*(uint ****)(puVar17 + -0x14) = &local_8c" (pointer_expression "*(uint ****)(puVar17 + -0x14)" (* "*") (cast_expression "(uint ****)(puVar17 + -0x14)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_8c" (& "&") (identifier "local_8c"))) (; ";")) (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 "*(uint ***)(puVar17 + -0x18) = &local_6c;" (assignment_expression "*(uint ***)(puVar17 + -0x18) = &local_6c" (pointer_expression "*(uint ***)(puVar17 + -0x18)" (* "*") (cast_expression "(uint ***)(puVar17 + -0x18)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "*(uint ***)(puVar17 + -0x1c) = local_8c;" (assignment_expression "*(uint ***)(puVar17 + -0x1c) = local_8c" (pointer_expression "*(uint ***)(puVar17 + -0x1c)" (* "*") (cast_expression "(uint ***)(puVar17 + -0x1c)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x1c)" (( "(") (binary_expression "puVar17 + -0x1c" (identifier "puVar17") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar17 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d8")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x8e203;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x8e203" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x24)" (( "(") (binary_expression "puVar17 + -0x24" (identifier "puVar17") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8e203")) (; ";")) (expression_statement "FUN_00074280();" (call_expression "FUN_00074280()" (identifier "FUN_00074280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" (identifier "puVar17") (= "=") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_08;" (assignment_expression "ppuVar10 = extraout_ECX_08" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_08")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (if_statement "if (param_5 != local_a8) {\n          local_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -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_ac = param_4;\n          puVar16 = puVar17;\nLAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }\n          puVar17 = puVar16;\n          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "local_ac = param_4;" (assignment_expression "local_ac = param_4" (identifier "local_ac") (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" (identifier "puVar16") (= "=") (identifier "puVar17")) (; ";")) (labeled_statement "LAB_0008de7e:\n          if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" (statement_identifier "LAB_0008de7e") (: ":") (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" (* "*") (cast_expression "(int *)(*local_c4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_c4 + 8)" (( "(") (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" (* "*") (identifier "local_c4")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;\n            *(undefined4 *)(puVar16 + -0xc) = 0x5c;\n            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar16 + -8)" (* "*") (cast_expression "(undefined ***)(puVar16 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar16 + -8)" (( "(") (binary_expression "puVar16 + -8" (identifier "puVar16") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0xc)" (( "(") (binary_expression "puVar16 + -0xc" (identifier "puVar16") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar16 + -0x10)" (* "*") (cast_expression "(int *)(puVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x10)" (( "(") (binary_expression "puVar16 + -0x10" (identifier "puVar16") (+ "+") (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 *)(puVar16 + -0x14) = 0x8e782;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x8e782" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e782")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" (identifier "puVar17") (= "=") (identifier "puVar16")) (; ";")) (if_statement "if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x18b1)" (* "*") (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x18b1)" (( "(") (binary_expression "*(int *)(*local_c4 + 8) + 0x18b1" (pointer_expression "*(int *)(*local_c4 + 8)" (* "*") (cast_expression "(int *)(*local_c4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_c4 + 8)" (( "(") (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" (* "*") (identifier "local_c4")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x18b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_5c = param_4;\n            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);\n            local_58 = param_5;\n            local_54 = local_ac;\n            local_50 = local_a8;\n            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);\n            ppuVar12 = ppuVar10;\n            if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }\n            local_78 = ppuVar11 + 6;\n            *(undefined4 *)(puVar16 + -0xc) = 1;\n            *(undefined4 *)(puVar16 + -0x10) = 0;\n            *(undefined ****)(puVar16 + -0x14) = local_f4;\n            *(uint ***)(puVar16 + -0x18) = &local_54;\n            *(undefined ***)(puVar16 + -0x1c) = local_78;\n            *(undefined1 **)(puVar16 + -0x20) = local_d8;\n            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;\n            FUN_00074340();\n            piVar3 = *(int **)(*local_c4 + 0xc);\n            if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }\n            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);\n            ppuVar10 = local_a4 + -0x1569f4;\n            if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }\n            pbVar20 = local_cc;\n            puVar17 = puVar16 + -4;\n            if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -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 "ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);" (assignment_expression "ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)(*(int *)(param_2 + 0x158) + 0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x158) + 0x14)" (( "(") (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_ac;" (assignment_expression "local_54 = local_ac" (identifier "local_54") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "local_50 = local_a8;" (assignment_expression "local_50 = local_a8" (identifier "local_50") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);" (assignment_expression "ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" (identifier "ppuVar19") (= "=") (pointer_expression "*(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" (* "*") (cast_expression "(undefined ***)(*(int *)(param_2 + 0x158) + 0x18)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (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 "ppuVar12 = ppuVar10;" (assignment_expression "ppuVar12 = ppuVar10" (identifier "ppuVar12") (= "=") (identifier "ppuVar10")) (; ";")) (if_statement "if (ppuVar19 == (undefined **)0x0) {\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }\n            else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" (if "if") (parenthesized_expression "(ppuVar19 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar19 == (undefined **)0x0" (identifier "ppuVar19") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0008df10:\n              local_74 = &local_5c;\n              *(uint ****)(puVar16 + -0x10) = &local_74;\n              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;\n              FUN_0007da50();\n              ppuVar11 = local_98;\n            }" ({ "{") (labeled_statement "LAB_0008df10:\n              local_74 = &local_5c;" (statement_identifier "LAB_0008df10") (: ":") (expression_statement "local_74 = &local_5c;" (assignment_expression "local_74 = &local_5c" (identifier "local_74") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";"))) (expression_statement "*(uint ****)(puVar16 + -0x10) = &local_74;" (assignment_expression "*(uint ****)(puVar16 + -0x10) = &local_74" (pointer_expression "*(uint ****)(puVar16 + -0x10)" (* "*") (cast_expression "(uint ****)(puVar16 + -0x10)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar16 + -0x10)" (( "(") (binary_expression "puVar16 + -0x10" (identifier "puVar16") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_74" (& "&") (identifier "local_74"))) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x8df2b;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x8df2b" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8df2b")) (; ";")) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" (identifier "FUN_0007da50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar11 = local_98;" (assignment_expression "ppuVar11 = local_98" (identifier "ppuVar11") (= "=") (identifier "local_98")) (; ";")) (} "}")) (else_clause "else {\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" (else "else") (compound_statement "{\n              do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);\nLAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;\n            }" ({ "{") (do_statement "do {\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              } while ((undefined **)*ppuVar1 != (undefined **)0x0);" (do "do") (compound_statement "{\n                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }\n                ppuVar1 = ppuVar11 + 3;\n                ppuVar19 = (undefined **)*ppuVar1;\n                ppuVar11 = ppuVar12;\n              }" ({ "{") (while_statement "while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }" (while "while") (parenthesized_expression "((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))))" (( "(") (parenthesized_expression "(ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))" (( "(") (comma_expression "ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" (assignment_expression "ppuVar11 = ppuVar19" (identifier "ppuVar11") (= "=") (identifier "ppuVar19")) (, ",") (binary_expression "param_4 <= ppuVar11[4] &&\n                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" (binary_expression "param_4 <= ppuVar11[4]" (identifier "param_4") (<= "<=") (subscript_expression "ppuVar11[4]" (identifier "ppuVar11") ([ "[") (number_literal "4") (] "]"))) (&& "&&") (parenthesized_expression "((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])))" (( "(") (parenthesized_expression "(param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))" (( "(") (binary_expression "param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5])" (binary_expression "param_4 != (uint *)ppuVar11[4]" (identifier "param_4") (!= "!=") (cast_expression "(uint *)ppuVar11[4]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppuVar11[4]" (identifier "ppuVar11") ([ "[") (number_literal "4") (] "]")))) (|| "||") (parenthesized_expression "(param_5 <= ppuVar11[5])" (( "(") (binary_expression "param_5 <= ppuVar11[5]" (identifier "param_5") (<= "<=") (subscript_expression "ppuVar11[5]" (identifier "ppuVar11") ([ "[") (number_literal "5") (] "]"))) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                  ppuVar19 = (undefined **)ppuVar11[2];\n                  ppuVar12 = ppuVar11;\n                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;\n                }" ({ "{") (expression_statement "ppuVar19 = (undefined **)ppuVar11[2];" (assignment_expression "ppuVar19 = (undefined **)ppuVar11[2]" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)ppuVar11[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "ppuVar11[2]" (identifier "ppuVar11") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" (identifier "ppuVar12") (= "=") (identifier "ppuVar11")) (; ";")) (if_statement "if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;" (if "if") (parenthesized_expression "((undefined **)ppuVar11[2] == (undefined **)0x0)" (( "(") (binary_expression "(undefined **)ppuVar11[2] == (undefined **)0x0" (cast_expression "(undefined **)ppuVar11[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "ppuVar11[2]" (identifier "ppuVar11") ([ "[") (number_literal "2") (] "]"))) (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0008defa;" (goto "goto") (statement_identifier "LAB_0008defa") (; ";"))) (} "}"))) (expression_statement "ppuVar1 = ppuVar11 + 3;" (assignment_expression "ppuVar1 = ppuVar11 + 3" (identifier "ppuVar1") (= "=") (binary_expression "ppuVar11 + 3" (identifier "ppuVar11") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "ppuVar19 = (undefined **)*ppuVar1;" (assignment_expression "ppuVar19 = (undefined **)*ppuVar1" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)*ppuVar1" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*ppuVar1" (* "*") (identifier "ppuVar1")))) (; ";")) (expression_statement "ppuVar11 = ppuVar12;" (assignment_expression "ppuVar11 = ppuVar12" (identifier "ppuVar11") (= "=") (identifier "ppuVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined **)*ppuVar1 != (undefined **)0x0)" (( "(") (binary_expression "(undefined **)*ppuVar1 != (undefined **)0x0" (cast_expression "(undefined **)*ppuVar1" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*ppuVar1" (* "*") (identifier "ppuVar1"))) (!= "!=") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (labeled_statement "LAB_0008defa:\n              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;" (statement_identifier "LAB_0008defa") (: ":") (if_statement "if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;" (if "if") (parenthesized_expression "(((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5]))))" (( "(") (binary_expression "((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||\n                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))" (parenthesized_expression "((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4]))" (( "(") (binary_expression "(ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])" (parenthesized_expression "(ppuVar10 == ppuVar11)" (( "(") (binary_expression "ppuVar10 == ppuVar11" (identifier "ppuVar10") (== "==") (identifier "ppuVar11")) () ")")) (|| "||") (parenthesized_expression "(param_4 < ppuVar11[4])" (( "(") (binary_expression "param_4 < ppuVar11[4]" (identifier "param_4") (< "<") (subscript_expression "ppuVar11[4]" (identifier "ppuVar11") ([ "[") (number_literal "4") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))" (( "(") (parenthesized_expression "(param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5]))" (( "(") (binary_expression "param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])" (binary_expression "param_4 == (uint *)ppuVar11[4]" (identifier "param_4") (== "==") (cast_expression "(uint *)ppuVar11[4]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppuVar11[4]" (identifier "ppuVar11") ([ "[") (number_literal "4") (] "]")))) (&& "&&") (parenthesized_expression "(param_5 < ppuVar11[5])" (( "(") (binary_expression "param_5 < ppuVar11[5]" (identifier "param_5") (< "<") (subscript_expression "ppuVar11[5]" (identifier "ppuVar11") ([ "[") (number_literal "5") (] "]"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0008df10;" (goto "goto") (statement_identifier "LAB_0008df10") (; ";")))) (} "}")))) (expression_statement "local_78 = ppuVar11 + 6;" (assignment_expression "local_78 = ppuVar11 + 6" (identifier "local_78") (= "=") (binary_expression "ppuVar11 + 6" (identifier "ppuVar11") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0xc)" (( "(") (binary_expression "puVar16 + -0xc" (identifier "puVar16") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x10)" (( "(") (binary_expression "puVar16 + -0x10" (identifier "puVar16") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined ****)(puVar16 + -0x14) = local_f4;" (assignment_expression "*(undefined ****)(puVar16 + -0x14) = local_f4" (pointer_expression "*(undefined ****)(puVar16 + -0x14)" (* "*") (cast_expression "(undefined ****)(puVar16 + -0x14)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_f4")) (; ";")) (expression_statement "*(uint ***)(puVar16 + -0x18) = &local_54;" (assignment_expression "*(uint ***)(puVar16 + -0x18) = &local_54" (pointer_expression "*(uint ***)(puVar16 + -0x18)" (* "*") (cast_expression "(uint ***)(puVar16 + -0x18)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(undefined ***)(puVar16 + -0x1c) = local_78;" (assignment_expression "*(undefined ***)(puVar16 + -0x1c) = local_78" (pointer_expression "*(undefined ***)(puVar16 + -0x1c)" (* "*") (cast_expression "(undefined ***)(puVar16 + -0x1c)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar16 + -0x1c)" (( "(") (binary_expression "puVar16 + -0x1c" (identifier "puVar16") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_78")) (; ";")) (expression_statement "*(undefined1 **)(puVar16 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar16 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar16 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar16 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x20)" (( "(") (binary_expression "puVar16 + -0x20" (identifier "puVar16") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d8")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x24) = 0x8df57;" (assignment_expression "*(undefined4 *)(puVar16 + -0x24) = 0x8df57" (pointer_expression "*(undefined4 *)(puVar16 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x24)" (( "(") (binary_expression "puVar16 + -0x24" (identifier "puVar16") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8df57")) (; ";")) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" (identifier "FUN_00074340") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3 = *(int **)(*local_c4 + 0xc);" (assignment_expression "piVar3 = *(int **)(*local_c4 + 0xc)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(*local_c4 + 0xc)" (* "*") (cast_expression "(int **)(*local_c4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_c4 + 0xc)" (( "(") (binary_expression "*local_c4 + 0xc" (pointer_expression "*local_c4" (* "*") (identifier "local_c4")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar3 == (int *)0x0) {\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }" (if "if") (parenthesized_expression "(piVar3 == (int *)0x0)" (( "(") (binary_expression "piVar3 == (int *)0x0" (identifier "piVar3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;\n              *(undefined4 *)(puVar16 + -0x10) = 0x73;\n              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;\n                    \n              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;\n              FUN_002446e0();\n            }" ({ "{") (expression_statement "*(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;" (assignment_expression "*(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8" (pointer_expression "*(undefined ***)(puVar16 + -0xc)" (* "*") (cast_expression "(undefined ***)(puVar16 + -0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar16 + -0xc)" (( "(") (binary_expression "puVar16 + -0xc" (identifier "puVar16") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65db8" (identifier "local_a4") (+ "+") (number_literal "-0x65db8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x10)" (( "(") (binary_expression "puVar16 + -0x10" (identifier "puVar16") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x73")) (; ";")) (expression_statement "*(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar16 + -0x14)" (* "*") (cast_expression "(int *)(puVar16 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (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 *)(puVar16 + -0x18) = 0x8e7e2;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8e7e2" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8e7e2")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar19 = *(undefined ***)(*piVar3 + 0x104);" (assignment_expression "ppuVar19 = *(undefined ***)(*piVar3 + 0x104)" (identifier "ppuVar19") (= "=") (pointer_expression "*(undefined ***)(*piVar3 + 0x104)" (* "*") (cast_expression "(undefined ***)(*piVar3 + 0x104)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar3 + 0x104)" (( "(") (binary_expression "*piVar3 + 0x104" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x104")) () ")"))))) (; ";")) (expression_statement "ppuVar10 = local_a4 + -0x1569f4;" (assignment_expression "ppuVar10 = local_a4 + -0x1569f4" (identifier "ppuVar10") (= "=") (binary_expression "local_a4 + -0x1569f4" (identifier "local_a4") (+ "+") (number_literal "-0x1569f4"))) (; ";")) (if_statement "if (ppuVar19 != ppuVar10) {\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }" (if "if") (parenthesized_expression "(ppuVar19 != ppuVar10)" (( "(") (binary_expression "ppuVar19 != ppuVar10" (identifier "ppuVar19") (!= "!=") (identifier "ppuVar10")) () ")")) (compound_statement "{\n              *(int *)(puVar16 + -8) = local_b8;\n              *(int *)(puVar16 + -0xc) = local_bc;\n              *(uint **)(puVar16 + -0x10) = local_a8;\n              *(uint **)(puVar16 + -0x14) = local_ac;\n              *(uint **)(puVar16 + -0x18) = param_5;\n              *(uint **)(puVar16 + -0x1c) = param_4;\n              *(int *)(puVar16 + -0x20) = param_2;\n              *(int **)(puVar16 + -0x24) = piVar3;\n              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;\n              (*(code *)ppuVar19)();\n              ppuVar10 = extraout_ECX_07;\n            }" ({ "{") (expression_statement "*(int *)(puVar16 + -8) = local_b8;" (assignment_expression "*(int *)(puVar16 + -8) = local_b8" (pointer_expression "*(int *)(puVar16 + -8)" (* "*") (cast_expression "(int *)(puVar16 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -8)" (( "(") (binary_expression "puVar16 + -8" (identifier "puVar16") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(int *)(puVar16 + -0xc) = local_bc;" (assignment_expression "*(int *)(puVar16 + -0xc) = local_bc" (pointer_expression "*(int *)(puVar16 + -0xc)" (* "*") (cast_expression "(int *)(puVar16 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0xc)" (( "(") (binary_expression "puVar16 + -0xc" (identifier "puVar16") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(uint **)(puVar16 + -0x10) = local_a8;" (assignment_expression "*(uint **)(puVar16 + -0x10) = local_a8" (pointer_expression "*(uint **)(puVar16 + -0x10)" (* "*") (cast_expression "(uint **)(puVar16 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x10)" (( "(") (binary_expression "puVar16 + -0x10" (identifier "puVar16") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(uint **)(puVar16 + -0x14) = local_ac;" (assignment_expression "*(uint **)(puVar16 + -0x14) = local_ac" (pointer_expression "*(uint **)(puVar16 + -0x14)" (* "*") (cast_expression "(uint **)(puVar16 + -0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_ac")) (; ";")) (expression_statement "*(uint **)(puVar16 + -0x18) = param_5;" (assignment_expression "*(uint **)(puVar16 + -0x18) = param_5" (pointer_expression "*(uint **)(puVar16 + -0x18)" (* "*") (cast_expression "(uint **)(puVar16 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(uint **)(puVar16 + -0x1c) = param_4;" (assignment_expression "*(uint **)(puVar16 + -0x1c) = param_4" (pointer_expression "*(uint **)(puVar16 + -0x1c)" (* "*") (cast_expression "(uint **)(puVar16 + -0x1c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x1c)" (( "(") (binary_expression "puVar16 + -0x1c" (identifier "puVar16") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(int *)(puVar16 + -0x20) = param_2;" (assignment_expression "*(int *)(puVar16 + -0x20) = param_2" (pointer_expression "*(int *)(puVar16 + -0x20)" (* "*") (cast_expression "(int *)(puVar16 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x20)" (( "(") (binary_expression "puVar16 + -0x20" (identifier "puVar16") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int **)(puVar16 + -0x24) = piVar3;" (assignment_expression "*(int **)(puVar16 + -0x24) = piVar3" (pointer_expression "*(int **)(puVar16 + -0x24)" (* "*") (cast_expression "(int **)(puVar16 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x24)" (( "(") (binary_expression "puVar16 + -0x24" (identifier "puVar16") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;" (assignment_expression "*(undefined4 *)(puVar16 + -0x28) = 0x8e0fc" (pointer_expression "*(undefined4 *)(puVar16 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x28)" (( "(") (binary_expression "puVar16 + -0x28" (identifier "puVar16") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (number_literal "0x8e0fc")) (; ";")) (expression_statement "(*(code *)ppuVar19)();" (call_expression "(*(code *)ppuVar19)()" (parenthesized_expression "(*(code *)ppuVar19)" (( "(") (pointer_expression "*(code *)ppuVar19" (* "*") (cast_expression "(code *)ppuVar19" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar19"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_07;" (assignment_expression "ppuVar10 = extraout_ECX_07" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_07")) (; ";")) (} "}"))) (expression_statement "pbVar20 = local_cc;" (assignment_expression "pbVar20 = local_cc" (identifier "pbVar20") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "puVar17 = puVar16 + -4;" (assignment_expression "puVar17 = puVar16 + -4" (identifier "puVar17") (= "=") (binary_expression "puVar16 + -4" (identifier "puVar16") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (local_cc != (byte *)0x0) {\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(local_cc != (byte *)0x0)" (( "(") (binary_expression "local_cc != (byte *)0x0" (identifier "local_cc") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              local_a8 = &local_2c;\n              iVar13 = *(int *)(param_2 + 0x158);\n              *(byte **)(puVar16 + -0x14) = local_cc;\n              local_a0 = &local_34;\n              local_34 = local_a8;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;\n              sVar7 = strlen(*(char **)(puVar16 + -0x14));\n              ppuVar6 = local_a0;\n              *(undefined4 *)(puVar16 + -8) = 0;\n              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;\n              *(byte **)(puVar16 + -0x10) = pbVar20;\n              *(uint ***)(puVar16 + -0x14) = local_a0;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;\n              FUN_00072b90();\n              *(uint ***)(puVar16 + -0xc) = ppuVar6;\n              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;\n              *(int **)(puVar16 + -0x14) = &local_9c;\n              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;\n              FUN_00094bd0();\n              iVar13 = local_9c;\n              ppuVar10 = extraout_ECX_04;\n              if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }\n              puVar17 = puVar16 + -8;\n              iVar4 = *(int *)(param_2 + 0x158);\n              if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }\n            }" ({ "{") (expression_statement "local_a8 = &local_2c;" (assignment_expression "local_a8 = &local_2c" (identifier "local_a8") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (expression_statement "iVar13 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar13 = *(int *)(param_2 + 0x158)" (identifier "iVar13") (= "=") (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 **)(puVar16 + -0x14) = local_cc;" (assignment_expression "*(byte **)(puVar16 + -0x14) = local_cc" (pointer_expression "*(byte **)(puVar16 + -0x14)" (* "*") (cast_expression "(byte **)(puVar16 + -0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_cc")) (; ";")) (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 = local_a8;" (assignment_expression "local_34 = local_a8" (identifier "local_34") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfc4" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8dfc4")) (; ";")) (expression_statement "sVar7 = strlen(*(char **)(puVar16 + -0x14));" (assignment_expression "sVar7 = strlen(*(char **)(puVar16 + -0x14))" (identifier "sVar7") (= "=") (call_expression "strlen(*(char **)(puVar16 + -0x14))" (identifier "strlen") (argument_list "(*(char **)(puVar16 + -0x14))" (( "(") (pointer_expression "*(char **)(puVar16 + -0x14)" (* "*") (cast_expression "(char **)(puVar16 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "ppuVar6 = local_a0;" (assignment_expression "ppuVar6 = local_a0" (identifier "ppuVar6") (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -8)" (( "(") (binary_expression "puVar16 + -8" (identifier "puVar16") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;" (assignment_expression "*(byte **)(puVar16 + -0xc) = pbVar20 + sVar7" (pointer_expression "*(byte **)(puVar16 + -0xc)" (* "*") (cast_expression "(byte **)(puVar16 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0xc)" (( "(") (binary_expression "puVar16 + -0xc" (identifier "puVar16") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "pbVar20 + sVar7" (identifier "pbVar20") (+ "+") (identifier "sVar7"))) (; ";")) (expression_statement "*(byte **)(puVar16 + -0x10) = pbVar20;" (assignment_expression "*(byte **)(puVar16 + -0x10) = pbVar20" (pointer_expression "*(byte **)(puVar16 + -0x10)" (* "*") (cast_expression "(byte **)(puVar16 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x10)" (( "(") (binary_expression "puVar16 + -0x10" (identifier "puVar16") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "*(uint ***)(puVar16 + -0x14) = local_a0;" (assignment_expression "*(uint ***)(puVar16 + -0x14) = local_a0" (pointer_expression "*(uint ***)(puVar16 + -0x14)" (* "*") (cast_expression "(uint ***)(puVar16 + -0x14)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfd9" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8dfd9")) (; ";")) (expression_statement "FUN_00072b90();" (call_expression "FUN_00072b90()" (identifier "FUN_00072b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(uint ***)(puVar16 + -0xc) = ppuVar6;" (assignment_expression "*(uint ***)(puVar16 + -0xc) = ppuVar6" (pointer_expression "*(uint ***)(puVar16 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar16 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar16 + -0xc)" (( "(") (binary_expression "puVar16 + -0xc" (identifier "puVar16") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "ppuVar6")) (; ";")) (expression_statement "*(int *)(puVar16 + -0x10) = iVar13 + 0x44;" (assignment_expression "*(int *)(puVar16 + -0x10) = iVar13 + 0x44" (pointer_expression "*(int *)(puVar16 + -0x10)" (* "*") (cast_expression "(int *)(puVar16 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x10)" (( "(") (binary_expression "puVar16 + -0x10" (identifier "puVar16") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "iVar13 + 0x44" (identifier "iVar13") (+ "+") (number_literal "0x44"))) (; ";")) (expression_statement "*(int **)(puVar16 + -0x14) = &local_9c;" (assignment_expression "*(int **)(puVar16 + -0x14) = &local_9c" (pointer_expression "*(int **)(puVar16 + -0x14)" (* "*") (cast_expression "(int **)(puVar16 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_9c" (& "&") (identifier "local_9c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = 0x8dfed;" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = 0x8dfed" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x8dfed")) (; ";")) (expression_statement "FUN_00094bd0();" (call_expression "FUN_00094bd0()" (identifier "FUN_00094bd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar13 = local_9c;" (assignment_expression "iVar13 = local_9c" (identifier "iVar13") (= "=") (identifier "local_9c")) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_04;" (assignment_expression "ppuVar10 = extraout_ECX_04" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_04")) (; ";")) (if_statement "if (local_34 != local_a8) {\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }" (if "if") (parenthesized_expression "(local_34 != local_a8)" (( "(") (binary_expression "local_34 != local_a8" (identifier "local_34") (!= "!=") (identifier "local_a8")) () ")")) (compound_statement "{\n                *(uint **)(puVar16 + -0x18) = local_34;\n                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;\n                FUN_003ae080();\n                ppuVar10 = extraout_ECX_05;\n              }" ({ "{") (expression_statement "*(uint **)(puVar16 + -0x18) = local_34;" (assignment_expression "*(uint **)(puVar16 + -0x18) = local_34" (pointer_expression "*(uint **)(puVar16 + -0x18)" (* "*") (cast_expression "(uint **)(puVar16 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x1c) = 0x8e010;" (assignment_expression "*(undefined4 *)(puVar16 + -0x1c) = 0x8e010" (pointer_expression "*(undefined4 *)(puVar16 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x1c)" (( "(") (binary_expression "puVar16 + -0x1c" (identifier "puVar16") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x8e010")) (; ";")) (expression_statement "FUN_003ae080();" (call_expression "FUN_003ae080()" (identifier "FUN_003ae080") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_05;" (assignment_expression "ppuVar10 = extraout_ECX_05" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_05")) (; ";")) (} "}"))) (expression_statement "puVar17 = puVar16 + -8;" (assignment_expression "puVar17 = puVar16 + -8" (identifier "puVar17") (= "=") (binary_expression "puVar16 + -8" (identifier "puVar16") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "iVar4 = *(int *)(param_2 + 0x158);" (assignment_expression "iVar4 = *(int *)(param_2 + 0x158)" (identifier "iVar4") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (iVar13 != iVar4 + 0x48) {\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }\n              }" (if "if") (parenthesized_expression "(iVar13 != iVar4 + 0x48)" (( "(") (binary_expression "iVar13 != iVar4 + 0x48" (identifier "iVar13") (!= "!=") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48"))) () ")")) (compound_statement "{\n                local_34 = param_4;\n                local_30 = param_5;\n                ppuVar19 = *(undefined ***)(iVar4 + 0x18);\n                ppuVar12 = (undefined **)(iVar4 + 0x14);\n                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }\n                puVar17 = puVar16 + -8;\n                ppuVar19 = ppuVar10 + 6;\n                puVar16 = puVar16 + -8;\n                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -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 "ppuVar19 = *(undefined ***)(iVar4 + 0x18);" (assignment_expression "ppuVar19 = *(undefined ***)(iVar4 + 0x18)" (identifier "ppuVar19") (= "=") (pointer_expression "*(undefined ***)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined ***)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "ppuVar12 = (undefined **)(iVar4 + 0x14);" (assignment_expression "ppuVar12 = (undefined **)(iVar4 + 0x14)" (identifier "ppuVar12") (= "=") (cast_expression "(undefined **)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (if_statement "if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }\n                else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" (if "if") (parenthesized_expression "(*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0)" (( "(") (binary_expression "*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0" (pointer_expression "*(undefined ***)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined ***)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;\n                  local_70 = local_a0;\n                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;\n                  FUN_0007da50();\n                  ppuVar10 = local_98;\n                }" ({ "{") (labeled_statement "LAB_0008e140:\n                  *(uint ****)(puVar16 + -0x18) = &local_70;" (statement_identifier "LAB_0008e140") (: ":") (expression_statement "*(uint ****)(puVar16 + -0x18) = &local_70;" (assignment_expression "*(uint ****)(puVar16 + -0x18) = &local_70" (pointer_expression "*(uint ****)(puVar16 + -0x18)" (* "*") (cast_expression "(uint ****)(puVar16 + -0x18)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (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 *)(puVar16 + -0x1c) = 0x8e15e;" (assignment_expression "*(undefined4 *)(puVar16 + -0x1c) = 0x8e15e" (pointer_expression "*(undefined4 *)(puVar16 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x1c)" (( "(") (binary_expression "puVar16 + -0x1c" (identifier "puVar16") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x8e15e")) (; ";")) (expression_statement "FUN_0007da50();" (call_expression "FUN_0007da50()" (identifier "FUN_0007da50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar10 = local_98;" (assignment_expression "ppuVar10 = local_98" (identifier "ppuVar10") (= "=") (identifier "local_98")) (; ";")) (} "}")) (else_clause "else {\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" (else "else") (compound_statement "{\n                  do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);\nLAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;\n                }" ({ "{") (do_statement "do {\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);" (do "do") (compound_statement "{\n                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }\n                    ppuVar11 = ppuVar10 + 3;\n                    ppuVar19 = (undefined **)*ppuVar11;\n                    ppuVar10 = ppuVar12;\n                  }" ({ "{") (while_statement "while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }" (while "while") (parenthesized_expression "((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))))" (( "(") (parenthesized_expression "(ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))" (( "(") (comma_expression "ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" (assignment_expression "ppuVar10 = ppuVar19" (identifier "ppuVar10") (= "=") (identifier "ppuVar19")) (, ",") (binary_expression "param_4 <= ppuVar10[4] &&\n                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" (binary_expression "param_4 <= ppuVar10[4]" (identifier "param_4") (<= "<=") (subscript_expression "ppuVar10[4]" (identifier "ppuVar10") ([ "[") (number_literal "4") (] "]"))) (&& "&&") (parenthesized_expression "((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])))" (( "(") (parenthesized_expression "(param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))" (( "(") (binary_expression "param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5])" (binary_expression "param_4 != (uint *)ppuVar10[4]" (identifier "param_4") (!= "!=") (cast_expression "(uint *)ppuVar10[4]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppuVar10[4]" (identifier "ppuVar10") ([ "[") (number_literal "4") (] "]")))) (|| "||") (parenthesized_expression "(param_5 <= ppuVar10[5])" (( "(") (binary_expression "param_5 <= ppuVar10[5]" (identifier "param_5") (<= "<=") (subscript_expression "ppuVar10[5]" (identifier "ppuVar10") ([ "[") (number_literal "5") (] "]"))) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                      ppuVar19 = (undefined **)ppuVar10[2];\n                      ppuVar12 = ppuVar10;\n                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;\n                    }" ({ "{") (expression_statement "ppuVar19 = (undefined **)ppuVar10[2];" (assignment_expression "ppuVar19 = (undefined **)ppuVar10[2]" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)ppuVar10[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "ppuVar10[2]" (identifier "ppuVar10") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "ppuVar12 = ppuVar10;" (assignment_expression "ppuVar12 = ppuVar10" (identifier "ppuVar12") (= "=") (identifier "ppuVar10")) (; ";")) (if_statement "if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;" (if "if") (parenthesized_expression "((undefined **)ppuVar10[2] == (undefined **)0x0)" (( "(") (binary_expression "(undefined **)ppuVar10[2] == (undefined **)0x0" (cast_expression "(undefined **)ppuVar10[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "ppuVar10[2]" (identifier "ppuVar10") ([ "[") (number_literal "2") (] "]"))) (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0008e06a;" (goto "goto") (statement_identifier "LAB_0008e06a") (; ";"))) (} "}"))) (expression_statement "ppuVar11 = ppuVar10 + 3;" (assignment_expression "ppuVar11 = ppuVar10 + 3" (identifier "ppuVar11") (= "=") (binary_expression "ppuVar10 + 3" (identifier "ppuVar10") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "ppuVar19 = (undefined **)*ppuVar11;" (assignment_expression "ppuVar19 = (undefined **)*ppuVar11" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)*ppuVar11" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*ppuVar11" (* "*") (identifier "ppuVar11")))) (; ";")) (expression_statement "ppuVar10 = ppuVar12;" (assignment_expression "ppuVar10 = ppuVar12" (identifier "ppuVar10") (= "=") (identifier "ppuVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined **)*ppuVar11 != (undefined **)0x0)" (( "(") (binary_expression "(undefined **)*ppuVar11 != (undefined **)0x0" (cast_expression "(undefined **)*ppuVar11" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*ppuVar11" (* "*") (identifier "ppuVar11"))) (!= "!=") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (labeled_statement "LAB_0008e06a:\n                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;" (statement_identifier "LAB_0008e06a") (: ":") (if_statement "if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))\n                  goto LAB_0008e140;" (if "if") (parenthesized_expression "(((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))" (( "(") (binary_expression "((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||\n                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])))" (parenthesized_expression "((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4]))" (( "(") (binary_expression "(ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])" (parenthesized_expression "(ppuVar10 == (undefined **)(iVar4 + 0x14))" (( "(") (binary_expression "ppuVar10 == (undefined **)(iVar4 + 0x14)" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) () ")")) (|| "||") (parenthesized_expression "(param_4 < ppuVar10[4])" (( "(") (binary_expression "param_4 < ppuVar10[4]" (identifier "param_4") (< "<") (subscript_expression "ppuVar10[4]" (identifier "ppuVar10") ([ "[") (number_literal "4") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])))" (( "(") (parenthesized_expression "(param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))" (( "(") (binary_expression "param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5])" (binary_expression "param_4 == (uint *)ppuVar10[4]" (identifier "param_4") (== "==") (cast_expression "(uint *)ppuVar10[4]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppuVar10[4]" (identifier "ppuVar10") ([ "[") (number_literal "4") (] "]")))) (&& "&&") (parenthesized_expression "(param_5 < ppuVar10[5])" (( "(") (binary_expression "param_5 < ppuVar10[5]" (identifier "param_5") (< "<") (subscript_expression "ppuVar10[5]" (identifier "ppuVar10") ([ "[") (number_literal "5") (] "]"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0008e140;" (goto "goto") (statement_identifier "LAB_0008e140") (; ";")))) (} "}")))) (expression_statement "puVar17 = puVar16 + -8;" (assignment_expression "puVar17 = puVar16 + -8" (identifier "puVar17") (= "=") (binary_expression "puVar16 + -8" (identifier "puVar16") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "ppuVar19 = ppuVar10 + 6;" (assignment_expression "ppuVar19 = ppuVar10 + 6" (identifier "ppuVar19") (= "=") (binary_expression "ppuVar10 + 6" (identifier "ppuVar10") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar16 = puVar16 + -8;" (assignment_expression "puVar16 = puVar16 + -8" (identifier "puVar16") (= "=") (binary_expression "puVar16 + -8" (identifier "puVar16") (+ "+") (number_literal "-8"))) (; ";")) (for_statement "for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;\n                    puVar2 = (undefined4 *)*puVar2) {\n                  *(undefined4 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }" (for "for") (( "(") (assignment_expression "puVar2 = *(undefined4 **)(iVar13 + 0x30)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(iVar13 + 0x30)" (* "*") (cast_expression "(undefined4 **)(iVar13 + 0x30)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x30)" (( "(") (binary_expression "iVar13 + 0x30" (identifier "iVar13") (+ "+") (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 *)(puVar16 + -0xc) = 1;\n                  *(undefined4 *)(puVar16 + -0x10) = 0;\n                  *(undefined ****)(puVar16 + -0x14) = local_84;\n                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;\n                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;\n                  *(undefined1 **)(puVar16 + -0x20) = local_d8;\n                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;\n                  local_84[0] = ppuVar19;\n                  FUN_00074340();\n                  puVar17 = puVar16 + -4;\n                  ppuVar10 = extraout_ECX_06;\n                  puVar16 = puVar16 + -4;\n                }" ({ "{") (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0xc)" (( "(") (binary_expression "puVar16 + -0xc" (identifier "puVar16") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x10)" (( "(") (binary_expression "puVar16 + -0x10" (identifier "puVar16") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined ****)(puVar16 + -0x14) = local_84;" (assignment_expression "*(undefined ****)(puVar16 + -0x14) = local_84" (pointer_expression "*(undefined ****)(puVar16 + -0x14)" (* "*") (cast_expression "(undefined ****)(puVar16 + -0x14)" (( "(") (type_descriptor "undefined ****" (type_identifier "undefined") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar16 + -0x14)" (( "(") (binary_expression "puVar16 + -0x14" (identifier "puVar16") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_84")) (; ";")) (expression_statement "*(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(puVar16 + -0x18) = puVar2 + 1" (pointer_expression "*(undefined4 **)(puVar16 + -0x18)" (* "*") (cast_expression "(undefined4 **)(puVar16 + -0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x18)" (( "(") (binary_expression "puVar16 + -0x18" (identifier "puVar16") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined ***)(puVar16 + -0x1c) = ppuVar19;" (assignment_expression "*(undefined ***)(puVar16 + -0x1c) = ppuVar19" (pointer_expression "*(undefined ***)(puVar16 + -0x1c)" (* "*") (cast_expression "(undefined ***)(puVar16 + -0x1c)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar16 + -0x1c)" (( "(") (binary_expression "puVar16 + -0x1c" (identifier "puVar16") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "ppuVar19")) (; ";")) (expression_statement "*(undefined1 **)(puVar16 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar16 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar16 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar16 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + -0x20)" (( "(") (binary_expression "puVar16 + -0x20" (identifier "puVar16") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d8")) (; ";")) (expression_statement "*(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;" (assignment_expression "*(undefined4 *)(puVar16 + -0x24) = 0x8e0c3" (pointer_expression "*(undefined4 *)(puVar16 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar16 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + -0x24)" (( "(") (binary_expression "puVar16 + -0x24" (identifier "puVar16") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8e0c3")) (; ";")) (expression_statement "local_84[0] = ppuVar19;" (assignment_expression "local_84[0] = ppuVar19" (subscript_expression "local_84[0]" (identifier "local_84") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "ppuVar19")) (; ";")) (expression_statement "FUN_00074340();" (call_expression "FUN_00074340()" (identifier "FUN_00074340") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = puVar16 + -4;" (assignment_expression "puVar17 = puVar16 + -4" (identifier "puVar17") (= "=") (binary_expression "puVar16 + -4" (identifier "puVar16") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_06;" (assignment_expression "ppuVar10 = extraout_ECX_06" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_06")) (; ";")) (expression_statement "puVar16 = puVar16 + -4;" (assignment_expression "puVar16 = puVar16 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar16 + -4" (identifier "puVar16") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" (else "else") (compound_statement "{\n        if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }\n        uVar15 = uVar15 - param_4[0x2c];\n        local_a0 = (uint **)param_4[0x30];\n        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }\n        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);\n        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;\n        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }\n        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }\nLAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;\n        ppuVar10 = (undefined **)&DAT_00000008;\n        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);\n        pbVar21 = pbVar20;\n        do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        if (bVar22) {\n          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }\n        local_cc = pbVar20;\n        if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }\n        puVar16 = puVar17;\n        if (local_bd != 0) goto LAB_0008de7e;\n      }" ({ "{") (if_statement "if (uVar15 < param_4[0x2c]) {\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "(uVar15 < param_4[0x2c])" (( "(") (binary_expression "uVar15 < param_4[0x2c]" (identifier "uVar15") (< "<") (subscript_expression "param_4[0x2c]" (identifier "param_4") ([ "[") (number_literal "0x2c") (] "]"))) () ")")) (compound_statement "{\n          local_5c = (uint *)0x0;\nLAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;\n          *(undefined4 *)(puVar17 + -0xc) = 0x11c;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;\n                    \n          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "local_5c = (uint *)0x0;" (assignment_expression "local_5c = (uint *)0x0" (identifier "local_5c") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0008e2a7:\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" (statement_identifier "LAB_0008e2a7") (: ":") (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65e39" (identifier "local_a4") (+ "+") (number_literal "-0x65e39"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x11c")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (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 **)(puVar17 + -0x14) = &UNK_0008e2c8;" (assignment_expression "*(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8" (pointer_expression "*(undefined **)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_0008e2c8" (& "&") (identifier "UNK_0008e2c8"))) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar15 - param_4[0x2c];" (assignment_expression "uVar15 = uVar15 - param_4[0x2c]" (identifier "uVar15") (= "=") (binary_expression "uVar15 - param_4[0x2c]" (identifier "uVar15") (- "-") (subscript_expression "param_4[0x2c]" (identifier "param_4") ([ "[") (number_literal "0x2c") (] "]")))) (; ";")) (expression_statement "local_a0 = (uint **)param_4[0x30];" (assignment_expression "local_a0 = (uint **)param_4[0x30]" (identifier "local_a0") (= "=") (cast_expression "(uint **)param_4[0x30]" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[0x30]" (identifier "param_4") ([ "[") (number_literal "0x30") (] "]")))) (; ";")) (if_statement "if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }" (if "if") (parenthesized_expression "((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15)" (( "(") (binary_expression "(uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15" (call_expression "(uint)((int)((int)local_a0 - param_4[0x2f]) >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)((int)local_a0 - param_4[0x2f]) >> 2)" (( "(") (binary_expression "(int)((int)local_a0 - param_4[0x2f]) >> 2" (cast_expression "(int)((int)local_a0 - param_4[0x2f])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_a0 - param_4[0x2f])" (( "(") (binary_expression "(int)local_a0 - param_4[0x2f]" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (- "-") (subscript_expression "param_4[0x2f]" (identifier "param_4") ([ "[") (number_literal "0x2f") (] "]"))) () ")"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar15")) () ")")) (compound_statement "{\n          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;\n          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;\n          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;\n                    \n          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;\n          FUN_002446e0();\n        }" ({ "{") (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65dcc" (identifier "local_a4") (+ "+") (number_literal "-0x65dcc"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x8ad")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (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 *)(puVar17 + -0x14) = 0x8e7c4;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e7c4" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e7c4")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);" (assignment_expression "local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4)" (identifier "local_5c") (= "=") (pointer_expression "*(uint **)(param_4[0x2f] + uVar15 * 4)" (* "*") (cast_expression "(uint **)(param_4[0x2f] + uVar15 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4[0x2f] + uVar15 * 4)" (( "(") (binary_expression "param_4[0x2f] + uVar15 * 4" (subscript_expression "param_4[0x2f]" (identifier "param_4") ([ "[") (number_literal "0x2f") (] "]")) (+ "+") (binary_expression "uVar15 * 4" (identifier "uVar15") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (local_5c == (uint *)0x0) goto LAB_0008e2a7;" (if "if") (parenthesized_expression "(local_5c == (uint *)0x0)" (( "(") (binary_expression "local_5c == (uint *)0x0" (identifier "local_5c") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0008e2a7;" (goto "goto") (statement_identifier "LAB_0008e2a7") (; ";"))) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 0x10)" (( "(") (binary_expression "*(byte *)((int)local_5c + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_5c + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_5c + 0x2a)" (( "(") (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(uint **)(puVar17 + -0xc) = local_5c;\n          *(int *)(puVar17 + -0x10) = param_2;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;\n          local_5c = (uint *)FUN_0034cd90();\n        }" ({ "{") (expression_statement "*(uint **)(puVar17 + -0xc) = local_5c;" (assignment_expression "*(uint **)(puVar17 + -0xc) = local_5c" (pointer_expression "*(uint **)(puVar17 + -0xc)" (* "*") (cast_expression "(uint **)(puVar17 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = param_2;" (assignment_expression "*(int *)(puVar17 + -0x10) = param_2" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e292;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e292" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e292")) (; ";")) (expression_statement "local_5c = (uint *)FUN_0034cd90();" (assignment_expression "local_5c = (uint *)FUN_0034cd90()" (identifier "local_5c") (= "=") (cast_expression "(uint *)FUN_0034cd90()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0034cd90()" (identifier "FUN_0034cd90") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }\n        else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)local_5c + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_5c + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_5c + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_5c + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_5c + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_5c + 0x2a)" (( "(") (binary_expression "(int)local_5c + 0x2a" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bc = (int)local_e4 + local_b4;\n          local_ac = (uint *)local_5c[2];\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar22 = false;\n          bVar24 = (local_ac[0xb] & 1) == 0;\n          if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }\n        }" ({ "{") (expression_statement "local_e4 = (uint *)local_5c[0xc];" (assignment_expression "local_e4 = (uint *)local_5c[0xc]" (identifier "local_e4") (= "=") (cast_expression "(uint *)local_5c[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[0xc]" (identifier "local_5c") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "local_e0 = local_5c[0xd];" (assignment_expression "local_e0 = local_5c[0xd]" (identifier "local_e0") (= "=") (subscript_expression "local_5c[0xd]" (identifier "local_5c") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "local_bc = (int)local_e4 + local_b4;" (assignment_expression "local_bc = (int)local_e4 + local_b4" (identifier "local_bc") (= "=") (binary_expression "(int)local_e4 + local_b4" (cast_expression "(int)local_e4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e4")) (+ "+") (identifier "local_b4"))) (; ";")) (expression_statement "local_ac = (uint *)local_5c[2];" (assignment_expression "local_ac = (uint *)local_5c[2]" (identifier "local_ac") (= "=") (cast_expression "(uint *)local_5c[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);" (assignment_expression "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" (identifier "local_b8") (= "=") (binary_expression "local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" (binary_expression "local_b0 + local_e0" (identifier "local_b0") (+ "+") (identifier "local_e0")) (+ "+") (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_b4,(uint)local_e4)" (identifier "CARRY4") (argument_list "(local_b4,(uint)local_e4)" (( "(") (identifier "local_b4") (, ",") (cast_expression "(uint)local_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e4")) () ")")))))) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (local_ac[0xb] & 1) == 0;" (assignment_expression "bVar24 = (local_ac[0xb] & 1) == 0" (identifier "bVar24") (= "=") (binary_expression "(local_ac[0xb] & 1) == 0" (parenthesized_expression "(local_ac[0xb] & 1)" (( "(") (binary_expression "local_ac[0xb] & 1" (subscript_expression "local_ac[0xb]" (identifier "local_ac") ([ "[") (number_literal "0xb") (] "]")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar24) {\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }\n          else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" (if "if") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (compound_statement "{\n            local_a8 = (uint *)local_5c[3];\n            bVar14 = (byte)local_5c[10] & 0xf;\n            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;\n            bVar22 = bVar14 < 2;\n            bVar24 = bVar14 == 2;\n            if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }\n          }" ({ "{") (expression_statement "local_a8 = (uint *)local_5c[3];" (assignment_expression "local_a8 = (uint *)local_5c[3]" (identifier "local_a8") (= "=") (cast_expression "(uint *)local_5c[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar14 = (byte)local_5c[10] & 0xf;" (assignment_expression "bVar14 = (byte)local_5c[10] & 0xf" (identifier "bVar14") (= "=") (binary_expression "(byte)local_5c[10] & 0xf" (cast_expression "(byte)local_5c[10]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_5c[10]" (identifier "local_5c") ([ "[") (number_literal "10") (] "]"))) (& "&") (number_literal "0xf"))) (; ";")) (expression_statement "local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;" (assignment_expression "local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1" (identifier "local_bd") (= "=") (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)local_5c + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_5c + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_5c + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_5c + 0x2b)" (( "(") (binary_expression "(int)local_5c + 0x2b" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "bVar22 = bVar14 < 2;" (assignment_expression "bVar22 = bVar14 < 2" (identifier "bVar22") (= "=") (binary_expression "bVar14 < 2" (identifier "bVar14") (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar24 = bVar14 == 2;" (assignment_expression "bVar24 = bVar14 == 2" (identifier "bVar24") (= "=") (binary_expression "bVar14 == 2" (identifier "bVar14") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (bVar24) {\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }" (if "if") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (compound_statement "{\n              bVar22 = false;\n              bVar24 = local_bf == '\0';\n              if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }\n            }" ({ "{") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = local_bf == '\0';" (assignment_expression "bVar24 = local_bf == '\0'" (identifier "bVar24") (= "=") (binary_expression "local_bf == '\0'" (identifier "local_bf") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar24) {\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n                if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }\n                local_a0 = *(uint ***)(param_2 + 0x15c);\n                *(undefined4 *)(puVar17 + -0xc) = 1;\n                *(undefined4 *)(puVar17 + -0x10) = 0;\n                *(uint ****)(puVar17 + -0x14) = &local_88;\n                *(uint ***)(puVar17 + -0x18) = &local_64;\n                local_88 = local_a0 + 0xd;\n                *(uint ***)(puVar17 + -0x1c) = local_88;\n                *(undefined1 **)(puVar17 + -0x20) = local_d8;\n                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;\n                local_64 = local_ac;\n                local_60 = local_a8;\n                FUN_00074280();\n                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;\n                bVar24 = puVar17 == (undefined1 *)0x4;\n                puVar17 = puVar17 + -4;\n              }" ({ "{") (if_statement "if (local_bd != 0) {\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }" (if "if") (parenthesized_expression "(local_bd != 0)" (( "(") (binary_expression "local_bd != 0" (identifier "local_bd") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }\n                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }\n                }" ({ "{") (if_statement "if (*(int *)(*local_c4 + 8) == 0) {\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }" (if "if") (parenthesized_expression "(*(int *)(*local_c4 + 8) == 0)" (( "(") (binary_expression "*(int *)(*local_c4 + 8) == 0" (pointer_expression "*(int *)(*local_c4 + 8)" (* "*") (cast_expression "(int *)(*local_c4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_c4 + 8)" (( "(") (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" (* "*") (identifier "local_c4")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    *(undefined4 *)(puVar17 + -4) = 0;\n                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;\n                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;\n                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;\n                    \n                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;\n                    FUN_002446e0();\n                  }" ({ "{") (expression_statement "*(undefined4 *)(puVar17 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -4)" (( "(") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b32" (identifier "local_a4") (+ "+") (number_literal "-0x65b32"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;" (assignment_expression "*(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (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 *)(puVar17 + -0x14) = 0x8e88f;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e88f" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e88f")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }" (if "if") (parenthesized_expression "((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0))" (( "(") (binary_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||\n                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)" (parenthesized_expression "(*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0'" (pointer_expression "*(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" (* "*") (cast_expression "(char *)(*(int *)(*local_c4 + 8) + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*local_c4 + 8) + 0x1a25)" (( "(") (binary_expression "*(int *)(*local_c4 + 8) + 0x1a25" (pointer_expression "*(int *)(*local_c4 + 8)" (* "*") (cast_expression "(int *)(*local_c4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_c4 + 8)" (( "(") (binary_expression "*local_c4 + 8" (pointer_expression "*local_c4" (* "*") (identifier "local_c4")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)((int)local_5c + 0x29) & 3) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_5c + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)local_5c + 0x29) & 3)" (( "(") (binary_expression "*(byte *)((int)local_5c + 0x29) & 3" (pointer_expression "*(byte *)((int)local_5c + 0x29)" (* "*") (cast_expression "(byte *)((int)local_5c + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_5c + 0x29)" (( "(") (binary_expression "(int)local_5c + 0x29" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    bVar22 = local_f0 < (undefined **)0x2a;\n                    bVar24 = local_f0 == (undefined **)0x2a;\n                    if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }\n                    goto LAB_0008dd50;\n                  }" ({ "{") (expression_statement "bVar22 = local_f0 < (undefined **)0x2a;" (assignment_expression "bVar22 = local_f0 < (undefined **)0x2a" (identifier "bVar22") (= "=") (binary_expression "local_f0 < (undefined **)0x2a" (identifier "local_f0") (< "<") (cast_expression "(undefined **)0x2a" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x2a")))) (; ";")) (expression_statement "bVar24 = local_f0 == (undefined **)0x2a;" (assignment_expression "bVar24 = local_f0 == (undefined **)0x2a" (identifier "bVar24") (= "=") (binary_expression "local_f0 == (undefined **)0x2a" (identifier "local_f0") (== "==") (cast_expression "(undefined **)0x2a" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x2a")))) (; ";")) (if_statement "if (local_f0 < (undefined **)0x2b) {\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }" (if "if") (parenthesized_expression "(local_f0 < (undefined **)0x2b)" (( "(") (binary_expression "local_f0 < (undefined **)0x2b" (identifier "local_f0") (< "<") (cast_expression "(undefined **)0x2b" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x2b"))) () ")")) (compound_statement "{\n                    \n                    \n                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();\n                      return;\n                    }" ({ "{") (expression_statement "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();" (call_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))()" (parenthesized_expression "(*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))" (( "(") (pointer_expression "*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" (* "*") (cast_expression "(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4)" (( "(") (binary_expression "local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4" (subscript_expression "local_a4[(int)((int)local_f0 + -0x65f1a)]" (identifier "local_a4") ([ "[") (cast_expression "(int)((int)local_f0 + -0x65f1a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)local_f0 + -0x65f1a)" (( "(") (binary_expression "(int)local_f0 + -0x65f1a" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (+ "+") (number_literal "-0x65f1a")) () ")"))) (] "]")) (+ "+") (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_0008dd50;" (goto "goto") (statement_identifier "LAB_0008dd50") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_a0 = *(uint ***)(param_2 + 0x15c);" (assignment_expression "local_a0 = *(uint ***)(param_2 + 0x15c)" (identifier "local_a0") (= "=") (pointer_expression "*(uint ***)(param_2 + 0x15c)" (* "*") (cast_expression "(uint ***)(param_2 + 0x15c)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (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 *)(puVar17 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar17 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint ****)(puVar17 + -0x14) = &local_88;" (assignment_expression "*(uint ****)(puVar17 + -0x14) = &local_88" (pointer_expression "*(uint ****)(puVar17 + -0x14)" (* "*") (cast_expression "(uint ****)(puVar17 + -0x14)" (( "(") (type_descriptor "uint ****" (type_identifier "uint") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (; ";")) (expression_statement "*(uint ***)(puVar17 + -0x18) = &local_64;" (assignment_expression "*(uint ***)(puVar17 + -0x18) = &local_64" (pointer_expression "*(uint ***)(puVar17 + -0x18)" (* "*") (cast_expression "(uint ***)(puVar17 + -0x18)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (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 "*(uint ***)(puVar17 + -0x1c) = local_88;" (assignment_expression "*(uint ***)(puVar17 + -0x1c) = local_88" (pointer_expression "*(uint ***)(puVar17 + -0x1c)" (* "*") (cast_expression "(uint ***)(puVar17 + -0x1c)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x1c)" (( "(") (binary_expression "puVar17 + -0x1c" (identifier "puVar17") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_88")) (; ";")) (expression_statement "*(undefined1 **)(puVar17 + -0x20) = local_d8;" (assignment_expression "*(undefined1 **)(puVar17 + -0x20) = local_d8" (pointer_expression "*(undefined1 **)(puVar17 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar17 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_d8")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x24) = 0x8e54e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x24) = 0x8e54e" (pointer_expression "*(undefined4 *)(puVar17 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x24)" (( "(") (binary_expression "puVar17 + -0x24" (identifier "puVar17") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x8e54e")) (; ";")) (expression_statement "local_64 = local_ac;" (assignment_expression "local_64 = local_ac" (identifier "local_64") (= "=") (identifier "local_ac")) (; ";")) (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 < puVar17 + -0x20;" (assignment_expression "bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20" (identifier "bVar22") (= "=") (binary_expression "(undefined1 *)0xffffffe3 < puVar17 + -0x20" (cast_expression "(undefined1 *)0xffffffe3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffe3")) (< "<") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")))) (; ";")) (expression_statement "bVar24 = puVar17 == (undefined1 *)0x4;" (assignment_expression "bVar24 = puVar17 == (undefined1 *)0x4" (identifier "bVar24") (= "=") (binary_expression "puVar17 == (undefined1 *)0x4" (identifier "puVar17") (== "==") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "puVar17 = puVar17 + -4;" (assignment_expression "puVar17 = puVar17 + -4" (identifier "puVar17") (= "=") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" (else "else") (compound_statement "{\n            local_bd = 0;\n            local_a8 = (uint *)0x0;\n            local_ac = (uint *)0x0;\n          }" ({ "{") (expression_statement "local_bd = 0;" (assignment_expression "local_bd = 0" (identifier "local_bd") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = (uint *)0x0;" (assignment_expression "local_a8 = (uint *)0x0" (identifier "local_a8") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_ac = (uint *)0x0;" (assignment_expression "local_ac = (uint *)0x0" (identifier "local_ac") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" (else "else") (compound_statement "{\n          local_e4 = (uint *)local_5c[0xc];\n          local_e0 = local_5c[0xd];\n          local_bd = 0;\n          local_a8 = (uint *)0x0;\n          local_bc = (int)local_e4 + local_b4;\n          bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));\n          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);\n          bVar24 = local_b8 == 0;\n          local_ac = (uint *)0x0;\n        }" ({ "{") (expression_statement "local_e4 = (uint *)local_5c[0xc];" (assignment_expression "local_e4 = (uint *)local_5c[0xc]" (identifier "local_e4") (= "=") (cast_expression "(uint *)local_5c[0xc]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[0xc]" (identifier "local_5c") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "local_e0 = local_5c[0xd];" (assignment_expression "local_e0 = local_5c[0xd]" (identifier "local_e0") (= "=") (subscript_expression "local_5c[0xd]" (identifier "local_5c") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "local_bd = 0;" (assignment_expression "local_bd = 0" (identifier "local_bd") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = (uint *)0x0;" (assignment_expression "local_a8 = (uint *)0x0" (identifier "local_a8") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_bc = (int)local_e4 + local_b4;" (assignment_expression "local_bc = (int)local_e4 + local_b4" (identifier "local_bc") (= "=") (binary_expression "(int)local_e4 + local_b4" (cast_expression "(int)local_e4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e4")) (+ "+") (identifier "local_b4"))) (; ";")) (expression_statement "bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));" (assignment_expression "bVar22 = CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" (identifier "bVar22") (= "=") (binary_expression "CARRY4(local_b0,local_e0) ||\n                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" (call_expression "CARRY4(local_b0,local_e0)" (identifier "CARRY4") (argument_list "(local_b0,local_e0)" (( "(") (identifier "local_b0") (, ",") (identifier "local_e0") () ")"))) (|| "||") (call_expression "CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" (identifier "CARRY4") (argument_list "(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4))" (( "(") (binary_expression "local_b0 + local_e0" (identifier "local_b0") (+ "+") (identifier "local_e0")) (, ",") (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_b4,(uint)local_e4)" (identifier "CARRY4") (argument_list "(local_b4,(uint)local_e4)" (( "(") (identifier "local_b4") (, ",") (cast_expression "(uint)local_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e4")) () ")")))) () ")"))))) (; ";")) (expression_statement "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);" (assignment_expression "local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" (identifier "local_b8") (= "=") (binary_expression "local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4)" (binary_expression "local_b0 + local_e0" (identifier "local_b0") (+ "+") (identifier "local_e0")) (+ "+") (cast_expression "(uint)CARRY4(local_b4,(uint)local_e4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_b4,(uint)local_e4)" (identifier "CARRY4") (argument_list "(local_b4,(uint)local_e4)" (( "(") (identifier "local_b4") (, ",") (cast_expression "(uint)local_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e4")) () ")")))))) (; ";")) (expression_statement "bVar24 = local_b8 == 0;" (assignment_expression "bVar24 = local_b8 == 0" (identifier "bVar24") (= "=") (binary_expression "local_b8 == 0" (identifier "local_b8") (== "==") (number_literal "0"))) (; ";")) (expression_statement "local_ac = (uint *)0x0;" (assignment_expression "local_ac = (uint *)0x0" (identifier "local_ac") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (labeled_statement "LAB_0008dd50:\n        pbVar20 = (byte *)*local_5c;" (statement_identifier "LAB_0008dd50") (: ":") (expression_statement "pbVar20 = (byte *)*local_5c;" (assignment_expression "pbVar20 = (byte *)*local_5c" (identifier "pbVar20") (= "=") (cast_expression "(byte *)*local_5c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_5c" (* "*") (identifier "local_5c")))) (; ";"))) (expression_statement "ppuVar10 = (undefined **)&DAT_00000008;" (assignment_expression "ppuVar10 = (undefined **)&DAT_00000008" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)&DAT_00000008" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_00000008" (& "&") (identifier "DAT_00000008")))) (; ";")) (expression_statement "pbVar9 = (byte *)((int)local_a4 + -0x19ca26);" (assignment_expression "pbVar9 = (byte *)((int)local_a4 + -0x19ca26)" (identifier "pbVar9") (= "=") (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 "pbVar21 = pbVar20;" (assignment_expression "pbVar21 = pbVar20" (identifier "pbVar21") (= "=") (identifier "pbVar20")) (; ";")) (do_statement "do {\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" (do "do") (compound_statement "{\n          if (ppuVar10 == (undefined **)0x0) break;\n          ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n          bVar22 = *pbVar9 < *pbVar21;\n          bVar24 = *pbVar9 == *pbVar21;\n          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (ppuVar10 == (undefined **)0x0) break;" (if "if") (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar10 == (undefined **)0x0" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + -1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + -1)" (( "(") (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar22 = *pbVar9 < *pbVar21;" (assignment_expression "bVar22 = *pbVar9 < *pbVar21" (identifier "bVar22") (= "=") (binary_expression "*pbVar9 < *pbVar21" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar24 = *pbVar9 == *pbVar21;" (assignment_expression "bVar24 = *pbVar9 == *pbVar21" (identifier "bVar24") (= "=") (binary_expression "*pbVar9 == *pbVar21" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar25 * -2" (identifier "pbVar9") (+ "+") (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 "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" (identifier "pbVar21") (+ "+") (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          pbVar20 = pbVar20 + 8;\n        }\n        else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\n          pbVar20 = pbVar20 + 8;\n        }" ({ "{") (expression_statement "pbVar20 = pbVar20 + 8;" (assignment_expression "pbVar20 = pbVar20 + 8" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + 8" (identifier "pbVar20") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" (else "else") (compound_statement "{\n          ppuVar10 = (undefined **)0x7;\n          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);\n          pbVar21 = pbVar20;\n          do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);\n          pbVar20 = pbVar20 + 7;\n          if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\n          }\n        }" ({ "{") (expression_statement "ppuVar10 = (undefined **)0x7;" (assignment_expression "ppuVar10 = (undefined **)0x7" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)0x7" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x7"))) (; ";")) (expression_statement "pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);" (assignment_expression "pbVar9 = (byte *)((int)local_a4 + -0x19ca1d)" (identifier "pbVar9") (= "=") (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 "pbVar21 = pbVar20;" (assignment_expression "pbVar21 = pbVar20" (identifier "pbVar21") (= "=") (identifier "pbVar20")) (; ";")) (do_statement "do {\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar22);" (do "do") (compound_statement "{\n            if (ppuVar10 == (undefined **)0x0) break;\n            ppuVar10 = (undefined **)((int)ppuVar10 + -1);\n            bVar23 = *pbVar9 < *pbVar21;\n            bVar22 = *pbVar9 == *pbVar21;\n            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (ppuVar10 == (undefined **)0x0) break;" (if "if") (parenthesized_expression "(ppuVar10 == (undefined **)0x0)" (( "(") (binary_expression "ppuVar10 == (undefined **)0x0" (identifier "ppuVar10") (== "==") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = (undefined **)((int)ppuVar10 + -1);" (assignment_expression "ppuVar10 = (undefined **)((int)ppuVar10 + -1)" (identifier "ppuVar10") (= "=") (cast_expression "(undefined **)((int)ppuVar10 + -1)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + -1)" (( "(") (binary_expression "(int)ppuVar10 + -1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "bVar23 = *pbVar9 < *pbVar21;" (assignment_expression "bVar23 = *pbVar9 < *pbVar21" (identifier "bVar23") (= "=") (binary_expression "*pbVar9 < *pbVar21" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar22 = *pbVar9 == *pbVar21;" (assignment_expression "bVar22 = *pbVar9 == *pbVar21" (identifier "bVar22") (= "=") (binary_expression "*pbVar9 == *pbVar21" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar25 * -2" (identifier "pbVar9") (+ "+") (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 "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" (identifier "pbVar21") (+ "+") (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 "pbVar20 = pbVar20 + 7;" (assignment_expression "pbVar20 = pbVar20 + 7" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + 7" (identifier "pbVar20") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if ((!bVar23 && !bVar22) != bVar23) {\n            pbVar20 = local_cc;\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            pbVar20 = local_cc;\n          }" ({ "{") (expression_statement "pbVar20 = local_cc;" (assignment_expression "pbVar20 = local_cc" (identifier "pbVar20") (= "=") (identifier "local_cc")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_cc = pbVar20;" (assignment_expression "local_cc = pbVar20" (identifier "local_cc") (= "=") (identifier "pbVar20")) (; ";")) (if_statement "if (local_be != '\0') {\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }" (if "if") (parenthesized_expression "(local_be != '\0')" (( "(") (binary_expression "local_be != '\0'" (identifier "local_be") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }\n          local_a0 = &local_34;\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_c8;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;\n          FUN_00073b00();\n          puVar2 = *(undefined4 **)(local_d0 + 4);\n          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }\n          *(uint ***)(puVar17 + -0xc) = local_a0;\n          *(int *)(puVar17 + -0x10) = local_e8;\n          local_34 = local_e4;\n          local_30 = (uint *)local_e0;\n          local_2c = local_b4;\n          local_28 = local_b0;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;\n          FUN_00073e70();\n          puVar18 = (uint *)*param_7;\n          if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }\n          local_30 = (uint *)0x0;\n          puVar2 = (undefined4 *)local_d4[1];\n          local_34 = puVar18;\n          if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }\n          local_54 = (uint *)0x0;\n          *(uint ***)(puVar17 + -0xc) = &local_54;\n          *(int *)(puVar17 + -0x10) = local_ec;\n          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;\n          FUN_00074020();\n          ppuVar10 = extraout_ECX_03;\n        }" ({ "{") (if_statement "if (local_bd == 0) {\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }\n          else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" (if "if") (parenthesized_expression "(local_bd == 0)" (( "(") (binary_expression "local_bd == 0" (identifier "local_bd") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_34 = (uint *)0x0;\n            local_30 = (uint *)0x0;\n          }" ({ "{") (expression_statement "local_34 = (uint *)0x0;" (assignment_expression "local_34 = (uint *)0x0" (identifier "local_34") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" (else "else") (compound_statement "{\n            local_34 = local_ac;\n            local_30 = local_a8;\n          }" ({ "{") (expression_statement "local_34 = local_ac;" (assignment_expression "local_34 = local_ac" (identifier "local_34") (= "=") (identifier "local_ac")) (; ";")) (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 "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_c8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_c8" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8ddbe" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8ddbe")) (; ";")) (expression_statement "FUN_00073b00();" (call_expression "FUN_00073b00()" (identifier "FUN_00073b00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(local_d0 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_d0 + 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(local_d0 + 4)" (* "*") (cast_expression "(undefined4 **)(local_d0 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_d0 + 4)" (( "(") (binary_expression "local_d0 + 4" (identifier "local_d0") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar2 == *(undefined4 **)(local_d0 + 8)) {\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }\n          else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }" (if "if") (parenthesized_expression "(puVar2 == *(undefined4 **)(local_d0 + 8))" (( "(") (binary_expression "puVar2 == *(undefined4 **)(local_d0 + 8)" (identifier "puVar2") (== "==") (pointer_expression "*(undefined4 **)(local_d0 + 8)" (* "*") (cast_expression "(undefined4 **)(local_d0 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_d0 + 8)" (( "(") (binary_expression "local_d0 + 8" (identifier "local_d0") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = &local_5c;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(int *)(puVar17 + -0x10) = local_d0;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;\n            FUN_000726c0();\n          }" ({ "{") (expression_statement "*(uint ***)(puVar17 + -8) = &local_5c;" (assignment_expression "*(uint ***)(puVar17 + -8) = &local_5c" (pointer_expression "*(uint ***)(puVar17 + -8)" (* "*") (cast_expression "(uint ***)(puVar17 + -8)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_d0;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_d0" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e423;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e423" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e423")) (; ";")) (expression_statement "FUN_000726c0();" (call_expression "FUN_000726c0()" (identifier "FUN_000726c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar2 = local_5c;\n            *(undefined4 **)(local_d0 + 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_d0 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_d0 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_d0 + 4)" (* "*") (cast_expression "(undefined4 **)(local_d0 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_d0 + 4)" (( "(") (binary_expression "local_d0 + 4" (identifier "local_d0") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(uint ***)(puVar17 + -0xc) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_e8;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_e8" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_e8")) (; ";")) (expression_statement "local_34 = local_e4;" (assignment_expression "local_34 = local_e4" (identifier "local_34") (= "=") (identifier "local_e4")) (; ";")) (expression_statement "local_30 = (uint *)local_e0;" (assignment_expression "local_30 = (uint *)local_e0" (identifier "local_30") (= "=") (cast_expression "(uint *)local_e0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e0"))) (; ";")) (expression_statement "local_2c = local_b4;" (assignment_expression "local_2c = local_b4" (identifier "local_2c") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "local_28 = local_b0;" (assignment_expression "local_28 = local_b0" (identifier "local_28") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8de17;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8de17" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8de17")) (; ";")) (expression_statement "FUN_00073e70();" (call_expression "FUN_00073e70()" (identifier "FUN_00073e70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar18 = (uint *)*param_7;" (assignment_expression "puVar18 = (uint *)*param_7" (identifier "puVar18") (= "=") (cast_expression "(uint *)*param_7" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7")))) (; ";")) (if_statement "if (param_7[1] != 0) {\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }" (if "if") (parenthesized_expression "(param_7[1] != 0)" (( "(") (binary_expression "param_7[1] != 0" (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;\n            *(undefined4 *)(puVar17 + -0xc) = 0xc0;\n            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;\n                    \n            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;\n            FUN_002446e0();\n          }" ({ "{") (expression_statement "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;" (assignment_expression "*(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70" (pointer_expression "*(undefined ***)(puVar17 + -8)" (* "*") (cast_expression "(undefined ***)(puVar17 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_a4 + -0x65b70" (identifier "local_a4") (+ "+") (number_literal "-0x65b70"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar17 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_a4 + -0x672d3" (identifier "local_a4") (+ "+") (number_literal "-0x672d3"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e803;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e803" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e803")) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar2 = (undefined4 *)local_d4[1];" (assignment_expression "puVar2 = (undefined4 *)local_d4[1]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)local_d4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_d4[1]" (identifier "local_d4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_34 = puVar18;" (assignment_expression "local_34 = puVar18" (identifier "local_34") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if (puVar2 == (undefined4 *)local_d4[2]) {\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }\n          else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" (if "if") (parenthesized_expression "(puVar2 == (undefined4 *)local_d4[2])" (( "(") (binary_expression "puVar2 == (undefined4 *)local_d4[2]" (identifier "puVar2") (== "==") (cast_expression "(undefined4 *)local_d4[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_d4[2]" (identifier "local_d4") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n            *(uint ***)(puVar17 + -8) = local_a0;\n            *(undefined4 **)(puVar17 + -0xc) = puVar2;\n            *(undefined ***)(puVar17 + -0x10) = local_d4;\n            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;\n            FUN_00072a40();\n          }" ({ "{") (expression_statement "*(uint ***)(puVar17 + -8) = local_a0;" (assignment_expression "*(uint ***)(puVar17 + -8) = local_a0" (pointer_expression "*(uint ***)(puVar17 + -8)" (* "*") (cast_expression "(uint ***)(puVar17 + -8)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(undefined4 **)(puVar17 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar17 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar17 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar17 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(undefined ***)(puVar17 + -0x10) = local_d4;" (assignment_expression "*(undefined ***)(puVar17 + -0x10) = local_d4" (pointer_expression "*(undefined ***)(puVar17 + -0x10)" (* "*") (cast_expression "(undefined ***)(puVar17 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_d4")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8e445;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8e445" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8e445")) (; ";")) (expression_statement "FUN_00072a40();" (call_expression "FUN_00072a40()" (identifier "FUN_00072a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" (else "else") (compound_statement "{\n            *puVar2 = puVar18;\n            puVar2[1] = 0;\n            local_d4[1] = (undefined *)(puVar2 + 2);\n          }" ({ "{") (expression_statement "*puVar2 = puVar18;" (assignment_expression "*puVar2 = puVar18" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "puVar18")) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4[1] = (undefined *)(puVar2 + 2);" (assignment_expression "local_d4[1] = (undefined *)(puVar2 + 2)" (subscript_expression "local_d4[1]" (identifier "local_d4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined *)(puVar2 + 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 2)" (( "(") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")))) (expression_statement "local_54 = (uint *)0x0;" (assignment_expression "local_54 = (uint *)0x0" (identifier "local_54") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(uint ***)(puVar17 + -0xc) = &local_54;" (assignment_expression "*(uint ***)(puVar17 + -0xc) = &local_54" (pointer_expression "*(uint ***)(puVar17 + -0xc)" (* "*") (cast_expression "(uint ***)(puVar17 + -0xc)" (( "(") (type_descriptor "uint ***" (type_identifier "uint") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (expression_statement "*(int *)(puVar17 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar17 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar17 + -0x10)" (* "*") (cast_expression "(int *)(puVar17 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_ec")) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8de6e;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8de6e" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8de6e")) (; ";")) (expression_statement "FUN_00074020();" (call_expression "FUN_00074020()" (identifier "FUN_00074020") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar10 = extraout_ECX_03;" (assignment_expression "ppuVar10 = extraout_ECX_03" (identifier "ppuVar10") (= "=") (identifier "extraout_ECX_03")) (; ";")) (} "}"))) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" (identifier "puVar16") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (local_bd != 0) goto LAB_0008de7e;" (if "if") (parenthesized_expression "(local_bd != 0)" (( "(") (binary_expression "local_bd != 0" (identifier "local_bd") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008de7e;" (goto "goto") (statement_identifier "LAB_0008de7e") (; ";"))) (} "}")))) (labeled_statement "LAB_0008db0d:\n      local_dc = local_dc + 1;" (statement_identifier "LAB_0008db0d") (: ":") (expression_statement "local_dc = local_dc + 1;" (assignment_expression "local_dc = local_dc + 1" (identifier "local_dc") (= "=") (binary_expression "local_dc + 1" (identifier "local_dc") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_7 = param_7 + 6;" (assignment_expression "param_7 = param_7 + 6" (identifier "param_7") (= "=") (binary_expression "param_7 + 6" (identifier "param_7") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_8 != local_dc)" (( "(") (binary_expression "param_8 != local_dc" (identifier "param_8") (!= "!=") (identifier "local_dc")) () ")")) (; ";")) (} "}"))) (if_statement "if (local_4c[0] != local_f8) {\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }" (if "if") (parenthesized_expression "(local_4c[0] != local_f8)" (( "(") (binary_expression "local_4c[0] != local_f8" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_f8")) () ")")) (compound_statement "{\n    *(byte **)(puVar17 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;\n    FUN_003ae080();\n  }" ({ "{") (expression_statement "*(byte **)(puVar17 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar17 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar17 + -0x10)" (* "*") (cast_expression "(byte **)(puVar17 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;" (assignment_expression "*(undefined4 *)(puVar17 + -0x14) = 0x8dc0a" (pointer_expression "*(undefined4 *)(puVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8dc0a")) (; ";")) (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<64> * this, Symbol_table * symtab,
   Layout * layout, Sized_relobj_file<64,_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<64>::gc_process_relocs
          (Target_x86_64<64> *this,Symbol_table *symtab,Layout *layout,
          Sized_relobj_file<64,_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)

{
  pointer puVar1;
  pointer ppSVar2;
  _Base_ptr p_Var3;
  Target *pTVar4;
  Garbage_collection *pGVar5;
  undefined4 *puVar6;
  _func_int_varargs *p_Var7;
  pointer *ppuVar8;
  Icf *pIVar9;
  undefined1 *puVar10;
  Parameters *pPVar11;
  size_t sVar12;
  _func_int_varargs **pp_Var13;
  Xindex *pXVar14;
  pointer pcVar15;
  _Rb_tree_header *extraout_ECX;
  _Rb_tree_header *extraout_ECX_00;
  _Rb_tree_header *extraout_ECX_01;
  _Rb_tree_header *extraout_ECX_02;
  _Rb_tree_header *p_Var16;
  _Rb_tree_header *extraout_ECX_03;
  _Rb_tree_header *p_Var17;
  _Rb_tree_header *extraout_ECX_04;
  _Rb_tree_header *extraout_ECX_05;
  _Base_ptr p_Var18;
  _Rb_tree_header *extraout_ECX_06;
  _Rb_tree_header *extraout_ECX_07;
  _Rb_tree_header *extraout_ECX_08;
  _Rb_tree_header *extraout_ECX_09;
  int iVar19;
  _Rb_tree_header *extraout_ECX_10;
  byte bVar20;
  uint uVar21;
  undefined4 *puVar22;
  undefined4 *puVar23;
  Relobj *pRVar24;
  undefined **ppuVar25;
  byte *pbVar26;
  pointer ppOVar27;
  _func_int_varargs **pp_Var28;
  _Alloc_hider _Var29;
  bool bVar30;
  bool bVar31;
  bool bVar32;
  byte bVar33;
  undefined1 auStack_fc [4];
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_f8;
  __node_gen_type *local_f4;
  _Rb_tree_header *local_f0;
  Reloc_addend_size_info *local_ec;
  Addend_info *local_e8;
  Relobj *local_e4;
  Compressed_section_map *local_e0;
  size_t local_dc;
  undefined1 *local_d8;
  Offset_info *local_d4;
  Symbol_info *local_d0;
  _func_int_varargs **local_cc;
  mapped_type *local_c8;
  Parameters **local_c4;
  bool local_bf;
  char local_be;
  byte local_bd;
  int local_bc;
  int local_b8;
  pointer local_b4;
  __bucket_type *local_b0;
  Output_segment *local_ac;
  Relobj *local_a8;
  undefined **local_a4;
  Icf *local_a0;
  undefined1 *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<64,_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;
  
  bVar33 = 0;
  local_a4 = &_GLOBAL_OFFSET_TABLE_;
  if (sh_type == 9) {
    return;
  }
  local_c4 = &gold::parameters;
  if (gold::parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (gold::parameters->options_->icf_status_ == ICF_NONE) {
    local_f8 = &src_section_name.field_2;
    src_section_name._M_dataplus._M_p = (pointer)local_f8;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,"","");
    puVar23 = (undefined4 *)auStack_fc;
    p_Var16 = extraout_ECX_01;
  }
  else {
    (*(object->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x10])
              (&src_section_name,object,data_shndx);
    local_f8 = &src_section_name.field_2;
    puVar23 = (undefined4 *)&stack0xffffff00;
    p_Var16 = extraout_ECX;
  }
  _Var29._M_p = src_section_name._M_dataplus._M_p;
  pPVar11 = *local_c4;
  if (pPVar11->options_ == (General_options *)0x0) {
    *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;
    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;
    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e857;
    gold::do_gold_unreachable
              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
               *(char **)((int)puVar23 + -8));
  }
  if (pPVar11->options_->icf_status_ == ICF_NONE) {
LAB_0008d94f:
    local_be = '\0';
    local_ec = (Reloc_addend_size_info *)0x0;
    local_d4 = (Offset_info *)0x0;
    local_e8 = (Addend_info *)0x0;
    local_d0 = (Symbol_info *)0x0;
    local_c8 = (mapped_type *)0x0;
  }
  else {
    local_a8 = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar15 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e647;
      sVar12 = strlen(*(char **)((int)puVar23 + -0x10));
      pcVar15 = _Var29._M_p + sVar12;
    }
    *(undefined4 *)((int)puVar23 + -4) = 0;
    *(pointer *)((int)puVar23 + -8) = pcVar15;
    local_a0 = (Icf *)&src_id;
    *(pointer *)((int)puVar23 + -0xc) = _Var29._M_p;
    *(Icf **)((int)puVar23 + -0x10) = local_a0;
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e65f;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar19 = 5;
    bVar30 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar23 + -0x10);
    bVar32 = puVar23 == (undefined4 *)0x0;
    ppuVar25 = local_a4 + -0x67293;
    pRVar24 = src_id.first;
    do {
      if (iVar19 == 0) break;
      iVar19 = iVar19 + -1;
      bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;
      bVar30 = *(byte *)ppuVar25 < bVar20;
      bVar32 = *(byte *)ppuVar25 == bVar20;
      ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);
      pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);
    } while (bVar32);
    bVar31 = false;
    bVar30 = (!bVar30 && !bVar32) == bVar30;
    if (!bVar30) {
      p_Var16 = (_Rb_tree_header *)0xf;
      pbVar26 = (byte *)((int)local_a4 + -0x19ca46);
      pRVar24 = src_id.first;
      do {
        if (p_Var16 == (_Rb_tree_header *)0x0) break;
        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
        bVar20 = *(byte *)&(pRVar24->super_Object)._vptr_Object;
        bVar31 = *pbVar26 < bVar20;
        bVar30 = *pbVar26 == bVar20;
        pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
        pRVar24 = (Relobj *)((int)pRVar24 + (uint)bVar33 * -2 + 1);
      } while (bVar30);
      if ((!bVar31 && !bVar30) != bVar31) {
        if (src_id.first == local_a8) {
          pPVar11 = *local_c4;
        }
        else {
          *(Relobj **)((int)puVar23 + -0x10) = src_id.first;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e733;
          operator_delete(*(void **)((int)puVar23 + -0x10));
          pPVar11 = *local_c4;
          p_Var16 = extraout_ECX_10;
        }
        goto LAB_0008d94f;
      }
    }
    if (src_id.first != local_a8) {
      *(Relobj **)((int)puVar23 + -0x10) = src_id.first;
      *(undefined4 *)((int)puVar23 + -0x14) = 0x8e8ab;
      operator_delete(*(void **)((int)puVar23 + -0x10));
    }
    *(Icf **)((int)puVar23 + -0xc) = local_a0;
    src_id.first = (Relobj *)object;
    src_id.second = data_shndx;
    local_a0 = symtab->icf_;
    *(Reloc_info_list **)((int)puVar23 + -0x10) = &symtab->icf_->reloc_info_list_;
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e6d4;
    local_c8 = 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)puVar23 + -0x10),*(key_type **)((int)puVar23 + -0xc));
    p_Var16 = (_Rb_tree_header *)&local_c8->offset_info;
    local_d0 = &local_c8->symbol_info;
    local_ec = &local_c8->reloc_addend_size_info;
    local_e8 = &local_c8->addend_info;
    local_d4 = (Offset_info *)p_Var16;
    pPVar11 = *local_c4;
    local_be = '\x01';
  }
  if (pPVar11->options_ == (General_options *)0x0) {
    *(undefined4 *)((int)puVar23 + -4) = 0;
    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;
    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e873;
    gold::do_gold_unreachable
              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
               *(char **)((int)puVar23 + -8));
  }
  local_bf = false;
  if (pPVar11->options_->icf_status_ == ICF_SAFE) {
    *(Target_x86_64<64> **)((int)puVar23 + -0x10) = this;
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e56b;
    local_bf = do_can_check_for_function_pointers(*(Target_x86_64<64> **)((int)puVar23 + -0x10));
    bVar30 = false;
    bVar32 = !local_bf;
    p_Var16 = extraout_ECX_09;
    if (!bVar32) {
      p_Var16 = (_Rb_tree_header *)0xc;
      local_bf = false;
      ppuVar25 = local_a4 + -0x66894;
      _Var29 = src_section_name._M_dataplus;
      do {
        if (p_Var16 == (_Rb_tree_header *)0x0) break;
        p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
        bVar30 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;
        bVar32 = *(byte *)ppuVar25 == *_Var29._M_p;
        ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);
        _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
      } while (bVar32);
      bVar31 = false;
      bVar30 = (!bVar30 && !bVar32) == bVar30;
      if (!bVar30) {
        p_Var16 = (_Rb_tree_header *)0x11;
        pbVar26 = (byte *)((int)local_a4 + -0x19a243);
        _Var29 = src_section_name._M_dataplus;
        do {
          if (p_Var16 == (_Rb_tree_header *)0x0) break;
          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
          bVar31 = *pbVar26 < (byte)*_Var29._M_p;
          bVar30 = *pbVar26 == *_Var29._M_p;
          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
          _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
        } while (bVar30);
        bVar32 = false;
        bVar30 = (!bVar31 && !bVar30) == bVar31;
        if (!bVar30) {
          p_Var16 = (_Rb_tree_header *)0xc;
          pbVar26 = (byte *)((int)local_a4 + -0x19a231);
          _Var29 = src_section_name._M_dataplus;
          do {
            if (p_Var16 == (_Rb_tree_header *)0x0) break;
            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
            bVar32 = *pbVar26 < (byte)*_Var29._M_p;
            bVar30 = *pbVar26 == *_Var29._M_p;
            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
            _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
          } while (bVar30);
          bVar31 = false;
          bVar30 = (!bVar32 && !bVar30) == bVar32;
          if (!bVar30) {
            p_Var16 = (_Rb_tree_header *)0x11;
            ppuVar25 = local_a4 + -0x66889;
            _Var29 = src_section_name._M_dataplus;
            do {
              if (p_Var16 == (_Rb_tree_header *)0x0) break;
              p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
              bVar31 = *(byte *)ppuVar25 < (byte)*_Var29._M_p;
              bVar30 = *(byte *)ppuVar25 == *_Var29._M_p;
              ppuVar25 = (undefined **)((int)ppuVar25 + (uint)bVar33 * -2 + 1);
              _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
            } while (bVar30);
            bVar32 = false;
            bVar30 = (!bVar31 && !bVar30) == bVar31;
            if (!bVar30) {
              p_Var16 = (_Rb_tree_header *)0x9;
              pbVar26 = (byte *)((int)local_a4 + -0x19a212);
              _Var29 = src_section_name._M_dataplus;
              do {
                if (p_Var16 == (_Rb_tree_header *)0x0) break;
                p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
                bVar32 = *pbVar26 < (byte)*_Var29._M_p;
                bVar30 = *pbVar26 == *_Var29._M_p;
                pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
                _Var29._M_p = (pointer)((byte *)_Var29._M_p + (uint)bVar33 * -2 + 1);
              } while (bVar30);
              local_bf = (!bVar32 && !bVar30) != bVar32;
            }
          }
        }
      }
    }
  }
  if (reloc_count != 0) {
    local_cc = (_func_int_varargs **)0x0;
    local_d8 = local_94;
    local_dc = 0;
    local_f4 = &__node_gen;
    do {
      local_f0 = *(_Rb_tree_header **)(prelocs + 8);
      uVar21 = *(uint *)(prelocs + 0xc);
      local_b4 = *(pointer *)(prelocs + 0x10);
      local_b0 = *(__bucket_type **)(prelocs + 0x14);
      if (uVar21 < param_10) {
        if (plocal_symbols == (uchar *)0x0) {
          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;
          *(undefined4 *)((int)puVar23 + -0xc) = 0xea;
          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e764;
          gold::do_gold_unreachable
                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                     *(char **)((int)puVar23 + -8));
        }
        local_ac = (Output_segment *)(plocal_symbols + uVar21 * 0x18);
        local_a8 = (Relobj *)
                   (uint)*(ushort *)
                          ((int)&local_ac->output_lists_[0].
                                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                 ._M_impl._M_finish + 2);
        if (local_a8 < (Relobj *)0xff00) {
LAB_0008db84:
          pRVar24 = (Relobj *)
                    local_ac->output_lists_[0].
                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                    _M_impl._M_end_of_storage;
          ppOVar27 = local_ac->output_lists_[1].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_start;
          local_bc = (int)&local_b4->first + (int)pRVar24;
          local_b8 = (int)local_b0 + (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;
          if (local_be != '\0') {
            src_id.first = (Relobj *)object;
            src_id.second = (uint)local_a8;
            *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;
            *(mapped_type **)((int)puVar23 + -0x10) = local_c8;
            local_a0 = (Icf *)&src_id;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dbe0;
            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)puVar23 + -0x10),
                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));
            bVar30 = true;
            goto LAB_0008da46;
          }
        }
        else {
          if (local_a8 == (Relobj *)0xffff) {
            pXVar14 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;
            if (pXVar14 == (Xindex *)0x0) {
              pp_Var13 = (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.
                         _vptr_Object;
              *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0x10) = object;
              p_Var7 = pp_Var13[0x1b];
              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e35e;
              pXVar14 = (Xindex *)(*p_Var7)();
              (object->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = pXVar14;
            }
            *(uint *)((int)puVar23 + -8) = uVar21;
            *(Sized_relobj_file<64,_false> **)((int)puVar23 + -0xc) = object;
            *(Xindex **)((int)puVar23 + -0x10) = pXVar14;
                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc69;
            local_a8 = (Relobj *)
                       gold::Xindex::sym_xindex_to_shndx
                                 (*(Xindex **)((int)puVar23 + -0x10),
                                  *(Object **)((int)puVar23 + -0xc),*(uint *)((int)puVar23 + -8));
            p_Var16 = extraout_ECX_02;
            goto LAB_0008db84;
          }
          pRVar24 = (Relobj *)
                    local_ac->output_lists_[0].
                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                    _M_impl._M_end_of_storage;
          ppOVar27 = local_ac->output_lists_[1].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_start;
          local_bc = (int)&local_b4->first + (int)pRVar24;
          local_b8 = (int)*(__bucket_type **)(prelocs + 0x14) +
                     (uint)CARRY4((uint)local_b4,(uint)pRVar24) + (int)ppOVar27;
          if (local_be == '\0') goto LAB_0008db0d;
          src_id.first = (Relobj *)0x0;
          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;
          src_id.second = 0;
          local_a0 = (Icf *)&src_id;
                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8da41;
          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)puVar23 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));
          bVar30 = false;
LAB_0008da46:
          local_bd = *(byte *)&local_ac->output_lists_[0].
                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                               ._M_impl._M_finish;
          if ((local_bd & 0xf) == 3) {
            *(Icf **)((int)puVar23 + -0xc) = local_a0;
            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;
            src_id.first = (Relobj *)0xffffffff;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e34b;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));
          }
          else {
            *(Icf **)((int)puVar23 + -0xc) = local_a0;
            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;
            src_id.first = (Relobj *)0x0;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8da7c;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)puVar23 + -0x10),*(Symbol ***)((int)puVar23 + -0xc));
          }
          src_id.first = pRVar24;
          *(Icf **)((int)puVar23 + -0xc) = local_a0;
          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;
          src_id.second = (uint)ppOVar27;
          local_2c = local_b4;
          local_28._M_p = (pointer)local_b0;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8daab;
          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)puVar23 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));
          if (*(int *)(prelocs + 4) != 0) {
            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;
            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;
            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7a3;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                       *(char **)((int)puVar23 + -8));
          }
          src_id.first = *(Relobj **)prelocs;
          src_id.second = 0;
          puVar1 = (local_d4->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          if (puVar1 == (local_d4->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)puVar23 + -8) = local_a0;
            *(pointer *)((int)puVar23 + -0xc) = puVar1;
            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e325;
            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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),
                       *(ulonglong **)((int)puVar23 + -8));
          }
          else {
            *(Relobj **)puVar1 = *(Relobj **)prelocs;
            *(undefined4 *)((int)puVar1 + 4) = 0;
            (local_d4->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar1 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8db02;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)
                     ,*(uint **)((int)puVar23 + -0xc));
          p_Var16 = extraout_ECX_00;
          if (!bVar30) goto LAB_0008db0d;
        }
        if (local_bf != false) {
          bVar20 = *(byte *)&local_ac->output_lists_[0].
                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                             ._M_impl._M_finish;
          local_a0 = (Icf *)CONCAT31(local_a0._1_3_,bVar20);
          if ((bVar20 & 0xf) != 1) {
            if ((*local_c4)->options_ == (General_options *)0x0) {
              *(_Rb_tree_header **)((int)puVar23 + -4) = p_Var16;
              *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;
              *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;
              *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)((int)puVar23 + -0x14) = 0x8e81f;
              gold::do_gold_unreachable
                        (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                         *(char **)((int)puVar23 + -8));
            }
            if (((*local_c4)->options_->shared_).value == false) {
              p_Var16 = local_f0;
              if (local_f0 < (_Rb_tree_header *)0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(local_a4[(int)((int)(local_f0 + -0x5191) + 0xf)] + (int)local_a4))();
                return;
              }
            }
            else {
              local_a0 = symtab->icf_;
              local_6c = object;
              local_68 = (uint)*(ushort *)
                                ((int)&local_ac->output_lists_[0].
                                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                       ._M_impl._M_finish + 2);
              *(undefined4 *)((int)puVar23 + -0xc) = 1;
              *(undefined4 *)((int)puVar23 + -0x10) = 0;
              *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_2;
              __node_gen_2._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
              *(Sized_relobj_file<64,_false> ***)((int)puVar23 + -0x18) = &local_6c;
              *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_2._M_h;
              *(undefined1 **)((int)puVar23 + -0x20) = local_d8;
              *(undefined4 *)((int)puVar23 + -0x24) = 0x8e203;
              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>_>_>_>
                        ();
              puVar23 = (undefined4 *)((int)puVar23 + -4);
              p_Var16 = extraout_ECX_08;
            }
          }
        }
        if ((Relobj *)data_shndx != local_a8) {
          local_ac = (Output_segment *)object;
          puVar22 = puVar23;
LAB_0008de7e:
          if ((*local_c4)->options_ == (General_options *)0x0) {
            puVar22[-2] = local_a4 + -0x65b32;
            puVar22[-3] = 0x5c;
            puVar22[-4] = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            puVar22[-5] = 0x8e782;
            gold::do_gold_unreachable((char *)puVar22[-4],puVar22[-3],(char *)puVar22[-2]);
          }
          puVar23 = puVar22;
          if (((*local_c4)->options_->gc_sections_).value != false) {
            src_id_1.first = (Relobj *)object;
            p_Var16 = &(symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
            src_id_1.second = data_shndx;
            dst_id.first = (Relobj *)local_ac;
            dst_id.second = (uint)local_a8;
            p_Var3 = (symtab->gc_->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent;
            p_Var18 = &p_Var16->_M_header;
            if (p_Var3 == (_Base_ptr)0x0) {
LAB_0008df10:
              puVar22[-4] = &local_74;
              local_74 = &src_id_1;
              puVar22[-5] = 0x8df2b;
              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>_>_>_>_>_>
                          *)puVar22[-4],(_Base_ptr)puVar22[-3],
                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-2],
                         (tuple<> *)puVar22[-1],(piecewise_construct_t *)*puVar22);
              p_Var17 = local_98;
            }
            else {
              do {
                while ((p_Var17 = (_Rb_tree_header *)p_Var3,
                       object <= (Sized_relobj_file<64,_false> *)
                                 ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color &&
                       ((object != (Sized_relobj_file<64,_false> *)
                                   ((_Base_ptr)((int)p_Var17 + 0x10))->_M_color ||
                        (data_shndx <= ((pointer *)((int)p_Var17 + 0x10))[1]))))) {
                  p_Var3 = (p_Var17->_M_header)._M_left;
                  p_Var18 = &p_Var17->_M_header;
                  if ((p_Var17->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008defa;
                }
                p_Var3 = (_Base_ptr)
                         (((Reloc_addend_size_info *)&(p_Var17->_M_header)._M_right)->
                         super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.
                         _M_start;
                p_Var17 = (_Rb_tree_header *)p_Var18;
              } while (p_Var3 != (_Base_ptr)0x0);
LAB_0008defa:
              if (((p_Var16 == p_Var17) ||
                  (object < (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count)) ||
                 ((object == (Sized_relobj_file<64,_false> *)p_Var17->_M_node_count &&
                  (data_shndx < *(pointer *)(p_Var17 + 1))))) goto LAB_0008df10;
            }
            __node_gen._M_h = (__hashtable_alloc *)((int)(p_Var17 + 1) + 4);
            puVar22[-3] = 1;
            puVar22[-4] = 0;
            puVar22[-5] = local_f4;
            puVar22[-6] = &dst_id;
            puVar22[-7] = __node_gen._M_h;
            puVar22[-8] = local_d8;
            puVar22[-9] = 0x8df57;
            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>_>_>_>
                      ();
            pTVar4 = (*local_c4)->target_;
            if (pTVar4 == (Target *)0x0) {
              puVar22[-3] = local_a4 + -0x65db8;
              puVar22[-4] = 0x73;
              puVar22[-5] = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              puVar22[-6] = 0x8e7e2;
              gold::do_gold_unreachable((char *)puVar22[-5],puVar22[-4],(char *)puVar22[-3]);
            }
            ppuVar25 = (undefined **)pTVar4->_vptr_Target[0x41];
            p_Var16 = (_Rb_tree_header *)(local_a4 + -0x1569f4);
            if ((_Rb_tree_header *)ppuVar25 != p_Var16) {
              puVar22[-2] = local_b8;
              puVar22[-3] = local_bc;
              puVar22[-4] = local_a8;
              puVar22[-5] = local_ac;
              puVar22[-6] = data_shndx;
              puVar22[-7] = object;
              puVar22[-8] = symtab;
              puVar22[-9] = pTVar4;
              puVar22[-10] = 0x8e0fc;
              (*(code *)ppuVar25)();
              p_Var16 = extraout_ECX_07;
            }
            pp_Var13 = local_cc;
            puVar23 = puVar22 + -1;
            if (local_cc != (_func_int_varargs **)0x0) {
              local_a8 = (Relobj *)&local_2c;
              pGVar5 = symtab->gc_;
              puVar22[-5] = local_cc;
              src_id.first = (Relobj *)&local_2c;
              local_a0 = (Icf *)&src_id;
              puVar22[-6] = 0x8dfc4;
              sVar12 = strlen((char *)puVar22[-5]);
              pIVar9 = local_a0;
              puVar22[-2] = 0;
              puVar22[-3] = (byte *)((int)pp_Var13 + sVar12);
              puVar22[-4] = pp_Var13;
              puVar22[-5] = local_a0;
              puVar22[-6] = 0x8dfd9;
              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
              _M_construct<char_const*>();
              puVar22[-3] = pIVar9;
              puVar22[-4] = &pGVar5->cident_sections_;
              puVar22[-5] = &local_9c;
              puVar22[-6] = 0x8dfed;
              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>_>_>_>_>_>
                      *)puVar22[-5],
                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     puVar22[-4]);
              puVar10 = local_9c;
              p_Var16 = extraout_ECX_04;
              if (src_id.first != local_a8) {
                puVar22[-6] = src_id.first;
                puVar22[-7] = 0x8e010;
                operator_delete((void *)puVar22[-6]);
                p_Var16 = extraout_ECX_05;
              }
              puVar23 = puVar22 + -2;
              pGVar5 = symtab->gc_;
              if ((_Rb_tree_header *)puVar10 !=
                  &(pGVar5->cident_sections_)._M_t._M_impl.super__Rb_tree_header) {
                p_Var17 = &(pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header;
                src_id.first = (Relobj *)object;
                src_id.second = data_shndx;
                p_Var3 = (pGVar5->section_reloc_map_)._M_t._M_impl.super__Rb_tree_header._M_header.
                         _M_parent;
                p_Var18 = &p_Var17->_M_header;
                if (p_Var3 == (_Base_ptr)0x0) {
LAB_0008e140:
                  puVar22[-6] = &local_70;
                  local_70 = local_a0;
                  puVar22[-7] = 0x8e15e;
                  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>_>_>_>_>_>
                              *)puVar22[-6],(_Base_ptr)puVar22[-5],
                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar22[-4],
                             (tuple<> *)puVar22[-3],(piecewise_construct_t *)puVar22[-2]);
                  p_Var16 = local_98;
                }
                else {
                  do {
                    while ((p_Var16 = (_Rb_tree_header *)p_Var3,
                           object <= (Sized_relobj_file<64,_false> *)
                                     ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color &&
                           ((object != (Sized_relobj_file<64,_false> *)
                                       ((_Base_ptr)((int)p_Var16 + 0x10))->_M_color ||
                            (data_shndx <= ((pointer *)((int)p_Var16 + 0x10))[1]))))) {
                      p_Var3 = (p_Var16->_M_header)._M_left;
                      p_Var18 = &p_Var16->_M_header;
                      if ((p_Var16->_M_header)._M_left == (_Base_ptr)0x0) goto LAB_0008e06a;
                    }
                    p_Var3 = (_Base_ptr)
                             (((Reloc_addend_size_info *)&(p_Var16->_M_header)._M_right)->
                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>).
                             _M_impl._M_start;
                    p_Var16 = (_Rb_tree_header *)p_Var18;
                  } while (p_Var3 != (_Base_ptr)0x0);
LAB_0008e06a:
                  if (((p_Var16 == p_Var17) ||
                      (object < (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count)) ||
                     ((object == (Sized_relobj_file<64,_false> *)p_Var16->_M_node_count &&
                      (data_shndx < *(pointer *)(p_Var16 + 1))))) goto LAB_0008e140;
                }
                puVar23 = puVar22 + -2;
                ppuVar8 = (pointer *)(p_Var16 + 1);
                puVar22 = puVar22 + -2;
                for (puVar6 = *(undefined4 **)(puVar10 + 0x30); puVar6 != (undefined4 *)0x0;
                    puVar6 = (undefined4 *)*puVar6) {
                  *(undefined4 *)((int)puVar22 + -0xc) = 1;
                  *(undefined4 *)((int)puVar22 + -0x10) = 0;
                  *(__node_gen_type **)((int)puVar22 + -0x14) = &__node_gen_1;
                  *(undefined4 **)((int)puVar22 + -0x18) = puVar6 + 1;
                  *(pointer **)((int)puVar22 + -0x1c) = ppuVar8 + 1;
                  *(undefined1 **)((int)puVar22 + -0x20) = local_d8;
                  *(undefined4 *)((int)puVar22 + -0x24) = 0x8e0c3;
                  __node_gen_1._M_h = (__hashtable_alloc *)(ppuVar8 + 1);
                  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>_>_>_>
                            ();
                  puVar23 = (undefined4 *)((int)puVar22 + -4);
                  p_Var16 = extraout_ECX_06;
                  puVar22 = (undefined4 *)((int)puVar22 + -4);
                }
              }
            }
          }
        }
      }
      else {
        if (uVar21 < object->local_symbol_count_) {
          src_id_1.first = (Relobj *)0x0;
LAB_0008e2a7:
          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65e39;
          *(undefined4 *)((int)puVar23 + -0xc) = 0x11c;
          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)((int)puVar23 + -0x14) = &UNK_0008e2c8;
          gold::do_gold_unreachable
                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                     *(char **)((int)puVar23 + -8));
        }
        uVar21 = uVar21 - object->local_symbol_count_;
        ppSVar2 = (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)ppSVar2 >> 2) <= uVar21) {
          *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65dcc;
          *(undefined4 *)((int)puVar23 + -0xc) = 0x8ad;
          *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e7c4;
          gold::do_gold_unreachable
                    (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                     *(char **)((int)puVar23 + -8));
        }
        src_id_1.first = (Relobj *)ppSVar2[uVar21];
        if (src_id_1.first == (Relobj *)0x0) goto LAB_0008e2a7;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          *(Relobj **)((int)puVar23 + -0xc) = src_id_1.first;
          *(Symbol_table **)((int)puVar23 + -0x10) = symtab;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8e292;
          src_id_1.first =
               (Relobj *)
               gold::Symbol_table::resolve_forwards
                         (*(Symbol_table **)((int)puVar23 + -0x10),*(Symbol **)((int)puVar23 + -0xc)
                         );
        }
        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;
          local_ac = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          local_bc = (int)&local_b4->first + (int)local_e4;
          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);
          bVar30 = false;
          bVar32 = ((uint)local_ac->output_lists_[3].
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_end_of_storage & 1) == 0;
          if (bVar32) {
            local_a8 = (Relobj *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            bVar20 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;
            local_bd = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;
            bVar30 = bVar20 < 2;
            bVar32 = bVar20 == 2;
            if (bVar32) {
              bVar30 = false;
              bVar32 = local_bf == false;
              if (!bVar32) {
                if (local_bd != 0) {
                  if ((*local_c4)->options_ == (General_options *)0x0) {
                    *(undefined4 *)((int)puVar23 + -4) = 0;
                    *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b32;
                    *(undefined4 *)((int)puVar23 + -0xc) = 0x5c;
                    *(int *)((int)puVar23 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    *(undefined4 *)((int)puVar23 + -0x14) = 0x8e88f;
                    gold::do_gold_unreachable
                              (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                               *(char **)((int)puVar23 + -8));
                  }
                  if ((((*local_c4)->options_->shared_).value == false) ||
                     ((((src_id_1.first)->super_Object).shnum_ & 0x300) == 0)) {
                    bVar30 = local_f0 < (_Rb_tree_header *)0x2a;
                    bVar32 = local_f0 == (_Rb_tree_header *)0x2a;
                    if (local_f0 < (_Rb_tree_header *)0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a4[(int)((int)(local_f0 + -0x518f) + 0x12)] + (int)local_a4))
                                ();
                      return;
                    }
                    goto _L7330;
                  }
                }
                local_a0 = symtab->icf_;
                *(undefined4 *)((int)puVar23 + -0xc) = 1;
                *(undefined4 *)((int)puVar23 + -0x10) = 0;
                *(__node_gen_type **)((int)puVar23 + -0x14) = &__node_gen_3;
                *(Output_segment ***)((int)puVar23 + -0x18) = &local_64;
                __node_gen_3._M_h = (__hashtable_alloc *)&local_a0->fptr_section_id_;
                *(__hashtable_alloc **)((int)puVar23 + -0x1c) = __node_gen_3._M_h;
                *(undefined1 **)((int)puVar23 + -0x20) = local_d8;
                *(undefined4 *)((int)puVar23 + -0x24) = 0x8e54e;
                local_64 = local_ac;
                local_60 = local_a8;
                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>_>_>_>
                          ();
                bVar30 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar23 + -0x20);
                bVar32 = puVar23 == (undefined4 *)0x4;
                puVar23 = (undefined4 *)((int)puVar23 + -4);
              }
            }
          }
          else {
            local_bd = 0;
            local_a8 = (Relobj *)0x0;
            local_ac = (Output_segment *)0x0;
          }
        }
        else {
          local_e4 = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_e0 = ((src_id_1.first)->super_Object).compressed_sections_;
          local_bd = 0;
          local_a8 = (Relobj *)0x0;
          bVar30 = CARRY4((uint)local_b0,(uint)local_e0) ||
                   CARRY4((int)local_b0 + (int)local_e0,(uint)CARRY4((uint)local_b4,(uint)local_e4))
          ;
          local_b8 = (int)local_b0 + (int)local_e0 + (uint)CARRY4((uint)local_b4,(uint)local_e4);
          bVar32 = local_b8 == 0;
          local_bc = (int)&local_b4->first + (int)local_e4;
          local_ac = (Output_segment *)0x0;
        }
_L7330:
        pp_Var13 = ((src_id_1.first)->super_Object)._vptr_Object;
        p_Var16 = (_Rb_tree_header *)&DAT_00000008;
        pbVar26 = (byte *)((int)local_a4 + -0x19ca26);
        pp_Var28 = pp_Var13;
        do {
          if (p_Var16 == (_Rb_tree_header *)0x0) break;
          p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
          bVar30 = *pbVar26 < *(byte *)pp_Var28;
          bVar32 = *pbVar26 == *(byte *)pp_Var28;
          pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
          pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);
        } while (bVar32);
        bVar31 = false;
        bVar30 = (!bVar30 && !bVar32) == bVar30;
        if (bVar30) {
          local_cc = pp_Var13 + 2;
        }
        else {
          p_Var16 = (_Rb_tree_header *)0x7;
          pbVar26 = (byte *)((int)local_a4 + -0x19ca1d);
          pp_Var28 = pp_Var13;
          do {
            if (p_Var16 == (_Rb_tree_header *)0x0) break;
            p_Var16 = (_Rb_tree_header *)((int)(p_Var16 + -1) + 0x13);
            bVar31 = *pbVar26 < *(byte *)pp_Var28;
            bVar30 = *pbVar26 == *(byte *)pp_Var28;
            pbVar26 = pbVar26 + (uint)bVar33 * -2 + 1;
            pp_Var28 = (_func_int_varargs **)((int)pp_Var28 + (uint)bVar33 * -2 + 1);
          } while (bVar30);
          pp_Var13 = (_func_int_varargs **)((int)pp_Var13 + 7);
          if ((!bVar31 && !bVar30) != bVar31) {
            pp_Var13 = local_cc;
          }
          local_cc = pp_Var13;
        }
        if (local_be != '\0') {
          if (local_bd == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_ac;
            src_id.second = (uint)local_a8;
          }
          *(Icf **)((int)puVar23 + -0xc) = (Icf *)&src_id;
          *(mapped_type **)((int)puVar23 + -0x10) = local_c8;
          local_a0 = (Icf *)&src_id;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8ddbe;
          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)puVar23 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar23 + -0xc));
          ppSVar2 = (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                    _M_impl._M_finish;
          if (ppSVar2 ==
              (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            *(Section_id **)((int)puVar23 + -8) = &src_id_1;
            *(pointer *)((int)puVar23 + -0xc) = ppSVar2;
            *(Symbol_info **)((int)puVar23 + -0x10) = local_d0;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e423;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)puVar23 + -0x10),(iterator)*(Symbol ***)((int)puVar23 + -0xc),
                       *(Symbol ***)((int)puVar23 + -8));
          }
          else {
            *ppSVar2 = (Symbol *)src_id_1.first;
            (local_d0->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar2 + 1;
          }
          *(Icf **)((int)puVar23 + -0xc) = local_a0;
          *(Addend_info **)((int)puVar23 + -0x10) = local_e8;
          src_id.first = local_e4;
          src_id.second = (uint)local_e0;
          local_2c = local_b4;
          local_28._M_p = (pointer)local_b0;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de17;
          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)puVar23 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)puVar23 + -0xc));
          if (*(int *)(prelocs + 4) != 0) {
            *(undefined ***)((int)puVar23 + -8) = local_a4 + -0x65b70;
            *(undefined4 *)((int)puVar23 + -0xc) = 0xc0;
            *(undefined ***)((int)puVar23 + -0x10) = local_a4 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e803;
            gold::do_gold_unreachable
                      (*(char **)((int)puVar23 + -0x10),*(int *)((int)puVar23 + -0xc),
                       *(char **)((int)puVar23 + -8));
          }
          src_id.first = *(Relobj **)prelocs;
          src_id.second = 0;
          puVar1 = (local_d4->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          if (puVar1 == (local_d4->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Icf **)((int)puVar23 + -8) = local_a0;
            *(pointer *)((int)puVar23 + -0xc) = puVar1;
            *(Offset_info **)((int)puVar23 + -0x10) = local_d4;
            *(undefined4 *)((int)puVar23 + -0x14) = 0x8e445;
            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)puVar23 + -0x10),(iterator)*(ulonglong **)((int)puVar23 + -0xc),
                       *(ulonglong **)((int)puVar23 + -8));
          }
          else {
            *(Relobj **)puVar1 = *(Relobj **)prelocs;
            *(undefined4 *)((int)puVar1 + 4) = 0;
            (local_d4->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar1 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)puVar23 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)puVar23 + -0x10) = local_ec;
          *(undefined4 *)((int)puVar23 + -0x14) = 0x8de6e;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar23 + -0x10)
                     ,*(uint **)((int)puVar23 + -0xc));
          p_Var16 = extraout_ECX_03;
        }
        puVar22 = puVar23;
        if (local_bd != 0) goto LAB_0008de7e;
      }
LAB_0008db0d:
      local_dc = local_dc + 1;
      prelocs = prelocs + 0x18;
    } while (reloc_count != local_dc);
  }
  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_f8) {
    *(pointer *)((int)puVar23 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)puVar23 + -0x14) = 0x8dc0a;
    operator_delete(*(void **)((int)puVar23 + -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: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (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: (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: (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: (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: (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: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (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: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (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: (pointer_declarator 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: (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: (type_identifier) 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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (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: (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: (identifier) right: (identifier))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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 (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (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: (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: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal))))) (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: (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: (pointer_expression argument: (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: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (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: (binary_expression left: (parenthesized_expression (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)))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))))) condition: (parenthesized_expression (identifier))) (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (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 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)))))) (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)) 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: (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: (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: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (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)))))))))))))))) (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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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: (true))) (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: (subscript_expression argument: (identifier) index: (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: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (false))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))) 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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (identifier) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (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 (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) 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)))) 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: (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 (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: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (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 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: (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 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (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 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 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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (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: (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: (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 (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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))) (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (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: (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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)))) 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: (subscript_expression argument: (identifier) index: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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 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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal))))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (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))))) (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 (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)) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (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 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 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: (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal))))) (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (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: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (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: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (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: (identifier) right: (number_literal)))) (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 (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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: (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 (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) 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)))) 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: (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 (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: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (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,uint *param_4,uint *param_5,
                 int param_6,undefined4 *param_7,int param_8,undefined4 param_9,undefined4 param_10,
                 uint param_11,int param_12)

{
  undefined **ppuVar1;
  undefined4 *puVar2;
  int *piVar3;
  int iVar4;
  code *pcVar5;
  uint **ppuVar6;
  size_t sVar7;
  uint uVar8;
  byte *pbVar9;
  undefined **extraout_ECX;
  undefined **extraout_ECX_00;
  undefined **extraout_ECX_01;
  undefined **extraout_ECX_02;
  undefined **ppuVar10;
  undefined **extraout_ECX_03;
  undefined **ppuVar11;
  undefined **extraout_ECX_04;
  undefined **extraout_ECX_05;
  undefined **ppuVar12;
  undefined **extraout_ECX_06;
  undefined **extraout_ECX_07;
  undefined **extraout_ECX_08;
  undefined **extraout_ECX_09;
  int iVar13;
  undefined **extraout_ECX_10;
  byte bVar14;
  uint uVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  uint *puVar18;
  undefined **ppuVar19;
  byte *pbVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  undefined1 auStack_fc [4];
  byte *local_f8;
  undefined ***local_f4;
  undefined **local_f0;
  int local_ec;
  int local_e8;
  uint *local_e4;
  uint local_e0;
  int local_dc;
  undefined1 *local_d8;
  undefined **local_d4;
  int local_d0;
  byte *local_cc;
  int local_c8;
  int *local_c4;
  char local_bf;
  char local_be;
  byte local_bd;
  int local_bc;
  int local_b8;
  uint local_b4;
  uint local_b0;
  uint *local_ac;
  uint *local_a8;
  undefined **local_a4;
  uint **local_a0;
  int local_9c;
  undefined **local_98;
  undefined1 local_94 [8];
  uint **local_8c;
  uint **local_88;
  undefined **local_84 [3];
  undefined **local_78;
  uint **local_74;
  uint **local_70;
  uint *local_6c;
  uint local_68;
  uint *local_64;
  uint *local_60;
  uint *local_5c;
  uint *local_58;
  uint *local_54;
  uint *local_50;
  byte *local_4c [2];
  byte local_44 [16];
  uint *local_34;
  uint *local_30;
  uint local_2c;
  uint local_28;
  
  bVar25 = 0;
  local_a4 = &__DT_PLTGOT;
  if (param_6 == 9) {
    return;
  }
  local_c4 = &DAT_005ea7c8;
  if (*(int *)(DAT_005ea7c8 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/parameters.h",0x5c,"options");
  }
  if (*(int *)(*(int *)(DAT_005ea7c8 + 8) + 0x5934) == 0) {
    local_f8 = local_44;
    local_4c[0] = local_f8;
    FUN_00072b90(local_4c,"","");
    puVar17 = auStack_fc;
    ppuVar10 = extraout_ECX_01;
  }
  else {
    (**(code **)(*param_4 + 0x40))(local_4c,param_4,param_5);
    local_f8 = local_44;
    puVar17 = &stack0xffffff00;
    ppuVar10 = extraout_ECX;
  }
  pbVar20 = local_4c[0];
  iVar13 = *local_c4;
  if (*(int *)(iVar13 + 8) == 0) {
    *(undefined ***)(puVar17 + -4) = ppuVar10;
    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)(puVar17 + -0xc) = 0x5c;
    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0008e852 to 0008e88e has its CatchHandler @ 0008e8b3 */
    *(undefined4 *)(puVar17 + -0x14) = 0x8e857;
    FUN_002446e0();
  }
  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 0) {
LAB_0008d94f:
    local_be = '\0';
    local_ec = 0;
    local_d4 = (undefined **)0x0;
    local_e8 = 0;
    local_d0 = 0;
    local_c8 = 0;
  }
  else {
    local_a8 = &local_2c;
    local_34 = local_a8;
    pbVar9 = (byte *)0xffffffff;
    if (local_4c[0] != (byte *)0x0) {
      *(byte **)(puVar17 + -0x10) = local_4c[0];
      *(undefined4 *)(puVar17 + -0x14) = 0x8e647;
      sVar7 = strlen(*(char **)(puVar17 + -0x10));
      pbVar9 = pbVar20 + sVar7;
    }
    *(undefined4 *)(puVar17 + -4) = 0;
    *(byte **)(puVar17 + -8) = pbVar9;
    local_a0 = &local_34;
    *(byte **)(puVar17 + -0xc) = pbVar20;
    *(uint ***)(puVar17 + -0x10) = local_a0;
    *(undefined4 *)(puVar17 + -0x14) = 0x8e65f;
    FUN_00072b90();
    iVar13 = 5;
    bVar22 = (undefined1 *)0xffffffef < puVar17 + -0x10;
    bVar24 = puVar17 == (undefined1 *)0x0;
    ppuVar10 = local_a4 + -0x67293;
    puVar18 = local_34;
    do {
      if (iVar13 == 0) break;
      iVar13 = iVar13 + -1;
      bVar22 = *(byte *)ppuVar10 < (byte)*puVar18;
      bVar24 = *(byte *)ppuVar10 == (byte)*puVar18;
      ppuVar10 = (undefined **)((int)ppuVar10 + (uint)bVar25 * -2 + 1);
      puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);
    } while (bVar24);
    bVar23 = false;
    bVar22 = (!bVar22 && !bVar24) == bVar22;
    if (!bVar22) {
      ppuVar10 = (undefined **)0xf;
      pbVar20 = (byte *)((int)local_a4 + -0x19ca46);
      puVar18 = local_34;
      do {
        if (ppuVar10 == (undefined **)0x0) break;
        ppuVar10 = (undefined **)((int)ppuVar10 + -1);
        bVar23 = *pbVar20 < (byte)*puVar18;
        bVar22 = *pbVar20 == (byte)*puVar18;
        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        puVar18 = (uint *)((int)puVar18 + (uint)bVar25 * -2 + 1);
      } while (bVar22);
      if ((!bVar23 && !bVar22) != bVar23) {
        if (local_34 == local_a8) {
          iVar13 = *local_c4;
        }
        else {
          *(uint **)(puVar17 + -0x10) = local_34;
          *(undefined4 *)(puVar17 + -0x14) = 0x8e733;
          FUN_003ae080();
          iVar13 = *local_c4;
          ppuVar10 = extraout_ECX_10;
        }
        goto LAB_0008d94f;
      }
    }
    if (local_34 != local_a8) {
      *(uint **)(puVar17 + -0x10) = local_34;
      *(undefined4 *)(puVar17 + -0x14) = 0x8e8ab;
      FUN_003ae080();
    }
    *(uint ***)(puVar17 + -0xc) = local_a0;
    local_34 = param_4;
    local_30 = param_5;
    local_a0 = *(uint ***)(param_2 + 0x15c);
    *(uint ***)(puVar17 + -0x10) = local_a0 + 0x15;
    *(undefined4 *)(puVar17 + -0x14) = 0x8e6d4;
    local_c8 = FUN_00074520();
    local_d0 = local_c8 + 0xc;
    local_e8 = local_c8 + 0x18;
    ppuVar10 = (undefined **)(local_c8 + 0x24);
    local_ec = local_c8 + 0x30;
    iVar13 = *local_c4;
    local_be = '\x01';
    local_d4 = ppuVar10;
  }
  if (*(int *)(iVar13 + 8) == 0) {
    *(undefined4 *)(puVar17 + -4) = 0;
    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;
    *(undefined4 *)(puVar17 + -0xc) = 0x5c;
    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)(puVar17 + -0x14) = 0x8e873;
    FUN_002446e0();
  }
  local_bf = '\0';
  if (*(int *)(*(int *)(iVar13 + 8) + 0x5934) == 2) {
    *(undefined4 *)(puVar17 + -0x10) = param_1;
    *(undefined4 *)(puVar17 + -0x14) = 0x8e56b;
    local_bf = FUN_000752e0();
    bVar22 = false;
    bVar24 = local_bf == '\0';
    ppuVar10 = extraout_ECX_09;
    if (!bVar24) {
      ppuVar10 = (undefined **)0xc;
      local_bf = '\0';
      ppuVar19 = local_a4 + -0x66894;
      pbVar20 = local_4c[0];
      do {
        if (ppuVar10 == (undefined **)0x0) break;
        ppuVar10 = (undefined **)((int)ppuVar10 + -1);
        bVar22 = *(byte *)ppuVar19 < *pbVar20;
        bVar24 = *(byte *)ppuVar19 == *pbVar20;
        ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);
        pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
      } while (bVar24);
      bVar23 = false;
      bVar22 = (!bVar22 && !bVar24) == bVar22;
      if (!bVar22) {
        ppuVar10 = (undefined **)0x11;
        pbVar20 = (byte *)((int)local_a4 + -0x19a243);
        pbVar9 = local_4c[0];
        do {
          if (ppuVar10 == (undefined **)0x0) break;
          ppuVar10 = (undefined **)((int)ppuVar10 + -1);
          bVar23 = *pbVar20 < *pbVar9;
          bVar22 = *pbVar20 == *pbVar9;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
        } while (bVar22);
        bVar24 = false;
        bVar22 = (!bVar23 && !bVar22) == bVar23;
        if (!bVar22) {
          ppuVar10 = (undefined **)0xc;
          pbVar20 = (byte *)((int)local_a4 + -0x19a231);
          pbVar9 = local_4c[0];
          do {
            if (ppuVar10 == (undefined **)0x0) break;
            ppuVar10 = (undefined **)((int)ppuVar10 + -1);
            bVar24 = *pbVar20 < *pbVar9;
            bVar22 = *pbVar20 == *pbVar9;
            pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
          } while (bVar22);
          bVar23 = false;
          bVar22 = (!bVar24 && !bVar22) == bVar24;
          if (!bVar22) {
            ppuVar10 = (undefined **)0x11;
            ppuVar19 = local_a4 + -0x66889;
            pbVar20 = local_4c[0];
            do {
              if (ppuVar10 == (undefined **)0x0) break;
              ppuVar10 = (undefined **)((int)ppuVar10 + -1);
              bVar23 = *(byte *)ppuVar19 < *pbVar20;
              bVar22 = *(byte *)ppuVar19 == *pbVar20;
              ppuVar19 = (undefined **)((int)ppuVar19 + (uint)bVar25 * -2 + 1);
              pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
            } while (bVar22);
            bVar24 = false;
            bVar22 = (!bVar23 && !bVar22) == bVar23;
            if (!bVar22) {
              ppuVar10 = (undefined **)0x9;
              pbVar20 = (byte *)((int)local_a4 + -0x19a212);
              pbVar9 = local_4c[0];
              do {
                if (ppuVar10 == (undefined **)0x0) break;
                ppuVar10 = (undefined **)((int)ppuVar10 + -1);
                bVar24 = *pbVar20 < *pbVar9;
                bVar22 = *pbVar20 == *pbVar9;
                pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
                pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
              } while (bVar22);
              local_bf = (!bVar24 && !bVar22) != bVar24;
            }
          }
        }
      }
    }
  }
  if (param_8 != 0) {
    local_cc = (byte *)0x0;
    local_d8 = local_94;
    local_f4 = &local_78;
    local_dc = 0;
    do {
      local_f0 = (undefined **)param_7[2];
      local_b0 = param_7[5];
      uVar15 = param_7[3];
      local_b4 = param_7[4];
      if (uVar15 < param_11) {
        if (param_12 == 0) {
          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;
          *(undefined4 *)(puVar17 + -0xc) = 0xea;
          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar17 + -0x14) = 0x8e764;
          FUN_002446e0();
        }
        local_ac = (uint *)(param_12 + uVar15 * 0x18);
        local_a8 = (uint *)(uint)*(ushort *)((int)local_ac + 6);
        if (local_a8 < (uint *)0xff00) {
LAB_0008db84:
          puVar18 = (uint *)local_ac[2];
          uVar15 = local_ac[3];
          local_bc = (int)puVar18 + local_b4;
          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);
          if (local_be != '\0') {
            local_34 = param_4;
            local_30 = local_a8;
            local_a0 = &local_34;
            *(uint ***)(puVar17 + -0xc) = local_a0;
            *(int *)(puVar17 + -0x10) = local_c8;
            *(undefined4 *)(puVar17 + -0x14) = 0x8dbe0;
            FUN_00073b00();
            bVar22 = true;
            goto LAB_0008da46;
          }
        }
        else {
          if (local_a8 == (uint *)0xffff) {
            uVar8 = param_4[0xc];
            if (uVar8 == 0) {
              uVar8 = *param_4;
              *(uint **)(puVar17 + -0x10) = param_4;
              pcVar5 = *(code **)(uVar8 + 0x6c);
              *(undefined4 *)(puVar17 + -0x14) = 0x8e35e;
              uVar8 = (*pcVar5)();
              param_4[0xc] = uVar8;
            }
            *(uint *)(puVar17 + -8) = uVar15;
            *(uint **)(puVar17 + -0xc) = param_4;
            *(uint *)(puVar17 + -0x10) = uVar8;
                    /* try { // try from 0008dc64 to 0008e81e has its CatchHandler @ 0008e8b3 */
            *(undefined4 *)(puVar17 + -0x14) = 0x8dc69;
            local_a8 = (uint *)FUN_0028b7d0();
            ppuVar10 = extraout_ECX_02;
            goto LAB_0008db84;
          }
          puVar18 = (uint *)local_ac[2];
          uVar15 = local_ac[3];
          local_bc = (int)puVar18 + local_b4;
          local_b8 = local_b0 + uVar15 + (uint)CARRY4(local_b4,(uint)puVar18);
          if (local_be == '\0') goto LAB_0008db0d;
          local_a0 = &local_34;
          local_34 = (uint *)0x0;
          *(uint ***)(puVar17 + -0xc) = local_a0;
          *(int *)(puVar17 + -0x10) = local_c8;
          local_30 = (uint *)0x0;
                    /* try { // try from 0008da3c to 0008dbdf has its CatchHandler @ 0008e8b3 */
          *(undefined4 *)(puVar17 + -0x14) = 0x8da41;
          FUN_00073b00();
          bVar22 = false;
LAB_0008da46:
          local_bd = (byte)local_ac[1];
          if ((local_bd & 0xf) == 3) {
            *(uint ***)(puVar17 + -0xc) = local_a0;
            *(int *)(puVar17 + -0x10) = local_d0;
            local_34 = (uint *)0xffffffff;
            *(undefined4 *)(puVar17 + -0x14) = 0x8e34b;
            FUN_00073ca0();
          }
          else {
            *(uint ***)(puVar17 + -0xc) = local_a0;
            *(int *)(puVar17 + -0x10) = local_d0;
            local_34 = (uint *)0x0;
            *(undefined4 *)(puVar17 + -0x14) = 0x8da7c;
            FUN_00073ca0();
          }
          *(uint ***)(puVar17 + -0xc) = local_a0;
          *(int *)(puVar17 + -0x10) = local_e8;
          local_2c = local_b4;
          local_28 = local_b0;
          *(undefined4 *)(puVar17 + -0x14) = 0x8daab;
          local_34 = puVar18;
          local_30 = (uint *)uVar15;
          FUN_00073e70();
          puVar18 = (uint *)*param_7;
          if (param_7[1] != 0) {
            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;
            *(undefined4 *)(puVar17 + -0xc) = 0xc0;
            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar17 + -0x14) = 0x8e7a3;
            FUN_002446e0();
          }
          local_30 = (uint *)0x0;
          puVar2 = (undefined4 *)local_d4[1];
          local_34 = puVar18;
          if (puVar2 == (undefined4 *)local_d4[2]) {
            *(uint ***)(puVar17 + -8) = local_a0;
            *(undefined4 **)(puVar17 + -0xc) = puVar2;
            *(undefined ***)(puVar17 + -0x10) = local_d4;
            *(undefined4 *)(puVar17 + -0x14) = 0x8e325;
            FUN_00072a40();
          }
          else {
            *puVar2 = puVar18;
            puVar2[1] = 0;
            local_d4[1] = (undefined *)(puVar2 + 2);
          }
          local_54 = (uint *)0x0;
          *(uint ***)(puVar17 + -0xc) = &local_54;
          *(int *)(puVar17 + -0x10) = local_ec;
          *(undefined4 *)(puVar17 + -0x14) = 0x8db02;
          FUN_00074020();
          ppuVar10 = extraout_ECX_00;
          if (!bVar22) goto LAB_0008db0d;
        }
        if (local_bf != '\0') {
          local_a0 = (uint **)CONCAT31(local_a0._1_3_,(byte)local_ac[1]);
          if (((byte)local_ac[1] & 0xf) != 1) {
            if (*(int *)(*local_c4 + 8) == 0) {
              *(undefined ***)(puVar17 + -4) = ppuVar10;
              *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;
              *(undefined4 *)(puVar17 + -0xc) = 0x5c;
              *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar17 + -0x14) = 0x8e81f;
              FUN_002446e0();
            }
            if (*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') {
              ppuVar10 = local_f0;
              if (local_f0 < (undefined **)0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008e38e. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                (*(code *)(local_a4[(int)((int)local_f0 + -0x65f45)] + (int)local_a4))();
                return;
              }
            }
            else {
              local_a0 = *(uint ***)(param_2 + 0x15c);
              local_6c = param_4;
              local_68 = (uint)*(ushort *)((int)local_ac + 6);
              *(undefined4 *)(puVar17 + -0xc) = 1;
              *(undefined4 *)(puVar17 + -0x10) = 0;
              *(uint ****)(puVar17 + -0x14) = &local_8c;
              local_8c = local_a0 + 0xd;
              *(uint ***)(puVar17 + -0x18) = &local_6c;
              *(uint ***)(puVar17 + -0x1c) = local_8c;
              *(undefined1 **)(puVar17 + -0x20) = local_d8;
              *(undefined4 *)(puVar17 + -0x24) = 0x8e203;
              FUN_00074280();
              puVar17 = puVar17 + -4;
              ppuVar10 = extraout_ECX_08;
            }
          }
        }
        if (param_5 != local_a8) {
          local_ac = param_4;
          puVar16 = puVar17;
LAB_0008de7e:
          if (*(int *)(*local_c4 + 8) == 0) {
            *(undefined ***)(puVar16 + -8) = local_a4 + -0x65b32;
            *(undefined4 *)(puVar16 + -0xc) = 0x5c;
            *(int *)(puVar16 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar16 + -0x14) = 0x8e782;
            FUN_002446e0();
          }
          puVar17 = puVar16;
          if (*(char *)(*(int *)(*local_c4 + 8) + 0x18b1) != '\0') {
            local_5c = param_4;
            ppuVar10 = (undefined **)(*(int *)(param_2 + 0x158) + 0x14);
            local_58 = param_5;
            local_54 = local_ac;
            local_50 = local_a8;
            ppuVar19 = *(undefined ***)(*(int *)(param_2 + 0x158) + 0x18);
            ppuVar12 = ppuVar10;
            if (ppuVar19 == (undefined **)0x0) {
LAB_0008df10:
              local_74 = &local_5c;
              *(uint ****)(puVar16 + -0x10) = &local_74;
              *(undefined4 *)(puVar16 + -0x14) = 0x8df2b;
              FUN_0007da50();
              ppuVar11 = local_98;
            }
            else {
              do {
                while ((ppuVar11 = ppuVar19, param_4 <= ppuVar11[4] &&
                       ((param_4 != (uint *)ppuVar11[4] || (param_5 <= ppuVar11[5]))))) {
                  ppuVar19 = (undefined **)ppuVar11[2];
                  ppuVar12 = ppuVar11;
                  if ((undefined **)ppuVar11[2] == (undefined **)0x0) goto LAB_0008defa;
                }
                ppuVar1 = ppuVar11 + 3;
                ppuVar19 = (undefined **)*ppuVar1;
                ppuVar11 = ppuVar12;
              } while ((undefined **)*ppuVar1 != (undefined **)0x0);
LAB_0008defa:
              if (((ppuVar10 == ppuVar11) || (param_4 < ppuVar11[4])) ||
                 ((param_4 == (uint *)ppuVar11[4] && (param_5 < ppuVar11[5])))) goto LAB_0008df10;
            }
            local_78 = ppuVar11 + 6;
            *(undefined4 *)(puVar16 + -0xc) = 1;
            *(undefined4 *)(puVar16 + -0x10) = 0;
            *(undefined ****)(puVar16 + -0x14) = local_f4;
            *(uint ***)(puVar16 + -0x18) = &local_54;
            *(undefined ***)(puVar16 + -0x1c) = local_78;
            *(undefined1 **)(puVar16 + -0x20) = local_d8;
            *(undefined4 *)(puVar16 + -0x24) = 0x8df57;
            FUN_00074340();
            piVar3 = *(int **)(*local_c4 + 0xc);
            if (piVar3 == (int *)0x0) {
              *(undefined ***)(puVar16 + -0xc) = local_a4 + -0x65db8;
              *(undefined4 *)(puVar16 + -0x10) = 0x73;
              *(int *)(puVar16 + -0x14) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar16 + -0x18) = 0x8e7e2;
              FUN_002446e0();
            }
            ppuVar19 = *(undefined ***)(*piVar3 + 0x104);
            ppuVar10 = local_a4 + -0x1569f4;
            if (ppuVar19 != ppuVar10) {
              *(int *)(puVar16 + -8) = local_b8;
              *(int *)(puVar16 + -0xc) = local_bc;
              *(uint **)(puVar16 + -0x10) = local_a8;
              *(uint **)(puVar16 + -0x14) = local_ac;
              *(uint **)(puVar16 + -0x18) = param_5;
              *(uint **)(puVar16 + -0x1c) = param_4;
              *(int *)(puVar16 + -0x20) = param_2;
              *(int **)(puVar16 + -0x24) = piVar3;
              *(undefined4 *)(puVar16 + -0x28) = 0x8e0fc;
              (*(code *)ppuVar19)();
              ppuVar10 = extraout_ECX_07;
            }
            pbVar20 = local_cc;
            puVar17 = puVar16 + -4;
            if (local_cc != (byte *)0x0) {
              local_a8 = &local_2c;
              iVar13 = *(int *)(param_2 + 0x158);
              *(byte **)(puVar16 + -0x14) = local_cc;
              local_a0 = &local_34;
              local_34 = local_a8;
              *(undefined4 *)(puVar16 + -0x18) = 0x8dfc4;
              sVar7 = strlen(*(char **)(puVar16 + -0x14));
              ppuVar6 = local_a0;
              *(undefined4 *)(puVar16 + -8) = 0;
              *(byte **)(puVar16 + -0xc) = pbVar20 + sVar7;
              *(byte **)(puVar16 + -0x10) = pbVar20;
              *(uint ***)(puVar16 + -0x14) = local_a0;
              *(undefined4 *)(puVar16 + -0x18) = 0x8dfd9;
              FUN_00072b90();
              *(uint ***)(puVar16 + -0xc) = ppuVar6;
              *(int *)(puVar16 + -0x10) = iVar13 + 0x44;
              *(int **)(puVar16 + -0x14) = &local_9c;
              *(undefined4 *)(puVar16 + -0x18) = 0x8dfed;
              FUN_00094bd0();
              iVar13 = local_9c;
              ppuVar10 = extraout_ECX_04;
              if (local_34 != local_a8) {
                *(uint **)(puVar16 + -0x18) = local_34;
                *(undefined4 *)(puVar16 + -0x1c) = 0x8e010;
                FUN_003ae080();
                ppuVar10 = extraout_ECX_05;
              }
              puVar17 = puVar16 + -8;
              iVar4 = *(int *)(param_2 + 0x158);
              if (iVar13 != iVar4 + 0x48) {
                local_34 = param_4;
                local_30 = param_5;
                ppuVar19 = *(undefined ***)(iVar4 + 0x18);
                ppuVar12 = (undefined **)(iVar4 + 0x14);
                if (*(undefined ***)(iVar4 + 0x18) == (undefined **)0x0) {
LAB_0008e140:
                  *(uint ****)(puVar16 + -0x18) = &local_70;
                  local_70 = local_a0;
                  *(undefined4 *)(puVar16 + -0x1c) = 0x8e15e;
                  FUN_0007da50();
                  ppuVar10 = local_98;
                }
                else {
                  do {
                    while ((ppuVar10 = ppuVar19, param_4 <= ppuVar10[4] &&
                           ((param_4 != (uint *)ppuVar10[4] || (param_5 <= ppuVar10[5]))))) {
                      ppuVar19 = (undefined **)ppuVar10[2];
                      ppuVar12 = ppuVar10;
                      if ((undefined **)ppuVar10[2] == (undefined **)0x0) goto LAB_0008e06a;
                    }
                    ppuVar11 = ppuVar10 + 3;
                    ppuVar19 = (undefined **)*ppuVar11;
                    ppuVar10 = ppuVar12;
                  } while ((undefined **)*ppuVar11 != (undefined **)0x0);
LAB_0008e06a:
                  if (((ppuVar10 == (undefined **)(iVar4 + 0x14)) || (param_4 < ppuVar10[4])) ||
                     ((param_4 == (uint *)ppuVar10[4] && (param_5 < ppuVar10[5]))))
                  goto LAB_0008e140;
                }
                puVar17 = puVar16 + -8;
                ppuVar19 = ppuVar10 + 6;
                puVar16 = puVar16 + -8;
                for (puVar2 = *(undefined4 **)(iVar13 + 0x30); puVar2 != (undefined4 *)0x0;
                    puVar2 = (undefined4 *)*puVar2) {
                  *(undefined4 *)(puVar16 + -0xc) = 1;
                  *(undefined4 *)(puVar16 + -0x10) = 0;
                  *(undefined ****)(puVar16 + -0x14) = local_84;
                  *(undefined4 **)(puVar16 + -0x18) = puVar2 + 1;
                  *(undefined ***)(puVar16 + -0x1c) = ppuVar19;
                  *(undefined1 **)(puVar16 + -0x20) = local_d8;
                  *(undefined4 *)(puVar16 + -0x24) = 0x8e0c3;
                  local_84[0] = ppuVar19;
                  FUN_00074340();
                  puVar17 = puVar16 + -4;
                  ppuVar10 = extraout_ECX_06;
                  puVar16 = puVar16 + -4;
                }
              }
            }
          }
        }
      }
      else {
        if (uVar15 < param_4[0x2c]) {
          local_5c = (uint *)0x0;
LAB_0008e2a7:
          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65e39;
          *(undefined4 *)(puVar17 + -0xc) = 0x11c;
          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19ca36;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar17 + -0x14) = &UNK_0008e2c8;
          FUN_002446e0();
        }
        uVar15 = uVar15 - param_4[0x2c];
        local_a0 = (uint **)param_4[0x30];
        if ((uint)((int)((int)local_a0 - param_4[0x2f]) >> 2) <= uVar15) {
          *(undefined ***)(puVar17 + -8) = local_a4 + -0x65dcc;
          *(undefined4 *)(puVar17 + -0xc) = 0x8ad;
          *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x19cc7b;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar17 + -0x14) = 0x8e7c4;
          FUN_002446e0();
        }
        local_5c = *(uint **)(param_4[0x2f] + uVar15 * 4);
        if (local_5c == (uint *)0x0) goto LAB_0008e2a7;
        if ((*(byte *)((int)local_5c + 0x2a) & 0x10) != 0) {
          *(uint **)(puVar17 + -0xc) = local_5c;
          *(int *)(puVar17 + -0x10) = param_2;
          *(undefined4 *)(puVar17 + -0x14) = 0x8e292;
          local_5c = (uint *)FUN_0034cd90();
        }
        if ((*(byte *)((int)local_5c + 0x2a) & 7) == 0) {
          local_e4 = (uint *)local_5c[0xc];
          local_e0 = local_5c[0xd];
          local_bc = (int)local_e4 + local_b4;
          local_ac = (uint *)local_5c[2];
          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);
          bVar22 = false;
          bVar24 = (local_ac[0xb] & 1) == 0;
          if (bVar24) {
            local_a8 = (uint *)local_5c[3];
            bVar14 = (byte)local_5c[10] & 0xf;
            local_bd = *(byte *)((int)local_5c + 0x2b) >> 5 & 1;
            bVar22 = bVar14 < 2;
            bVar24 = bVar14 == 2;
            if (bVar24) {
              bVar22 = false;
              bVar24 = local_bf == '\0';
              if (!bVar24) {
                if (local_bd != 0) {
                  if (*(int *)(*local_c4 + 8) == 0) {
                    *(undefined4 *)(puVar17 + -4) = 0;
                    *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b32;
                    *(undefined4 *)(puVar17 + -0xc) = 0x5c;
                    *(int *)(puVar17 + -0x10) = (int)local_a4 + -0x1a1d93;
                    /* WARNING: Subroutine does not return */
                    *(undefined4 *)(puVar17 + -0x14) = 0x8e88f;
                    FUN_002446e0();
                  }
                  if ((*(char *)(*(int *)(*local_c4 + 8) + 0x1a25) == '\0') ||
                     ((*(byte *)((int)local_5c + 0x29) & 3) == 0)) {
                    bVar22 = local_f0 < (undefined **)0x2a;
                    bVar24 = local_f0 == (undefined **)0x2a;
                    if (local_f0 < (undefined **)0x2b) {
                    /* WARNING: Could not recover jumptable at 0x0008e49c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                      (*(code *)(local_a4[(int)((int)local_f0 + -0x65f1a)] + (int)local_a4))();
                      return;
                    }
                    goto LAB_0008dd50;
                  }
                }
                local_a0 = *(uint ***)(param_2 + 0x15c);
                *(undefined4 *)(puVar17 + -0xc) = 1;
                *(undefined4 *)(puVar17 + -0x10) = 0;
                *(uint ****)(puVar17 + -0x14) = &local_88;
                *(uint ***)(puVar17 + -0x18) = &local_64;
                local_88 = local_a0 + 0xd;
                *(uint ***)(puVar17 + -0x1c) = local_88;
                *(undefined1 **)(puVar17 + -0x20) = local_d8;
                *(undefined4 *)(puVar17 + -0x24) = 0x8e54e;
                local_64 = local_ac;
                local_60 = local_a8;
                FUN_00074280();
                bVar22 = (undefined1 *)0xffffffe3 < puVar17 + -0x20;
                bVar24 = puVar17 == (undefined1 *)0x4;
                puVar17 = puVar17 + -4;
              }
            }
          }
          else {
            local_bd = 0;
            local_a8 = (uint *)0x0;
            local_ac = (uint *)0x0;
          }
        }
        else {
          local_e4 = (uint *)local_5c[0xc];
          local_e0 = local_5c[0xd];
          local_bd = 0;
          local_a8 = (uint *)0x0;
          local_bc = (int)local_e4 + local_b4;
          bVar22 = CARRY4(local_b0,local_e0) ||
                   CARRY4(local_b0 + local_e0,(uint)CARRY4(local_b4,(uint)local_e4));
          local_b8 = local_b0 + local_e0 + (uint)CARRY4(local_b4,(uint)local_e4);
          bVar24 = local_b8 == 0;
          local_ac = (uint *)0x0;
        }
LAB_0008dd50:
        pbVar20 = (byte *)*local_5c;
        ppuVar10 = (undefined **)&DAT_00000008;
        pbVar9 = (byte *)((int)local_a4 + -0x19ca26);
        pbVar21 = pbVar20;
        do {
          if (ppuVar10 == (undefined **)0x0) break;
          ppuVar10 = (undefined **)((int)ppuVar10 + -1);
          bVar22 = *pbVar9 < *pbVar21;
          bVar24 = *pbVar9 == *pbVar21;
          pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        bVar23 = false;
        bVar22 = (!bVar22 && !bVar24) == bVar22;
        if (bVar22) {
          pbVar20 = pbVar20 + 8;
        }
        else {
          ppuVar10 = (undefined **)0x7;
          pbVar9 = (byte *)((int)local_a4 + -0x19ca1d);
          pbVar21 = pbVar20;
          do {
            if (ppuVar10 == (undefined **)0x0) break;
            ppuVar10 = (undefined **)((int)ppuVar10 + -1);
            bVar23 = *pbVar9 < *pbVar21;
            bVar22 = *pbVar9 == *pbVar21;
            pbVar9 = pbVar9 + (uint)bVar25 * -2 + 1;
            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
          } while (bVar22);
          pbVar20 = pbVar20 + 7;
          if ((!bVar23 && !bVar22) != bVar23) {
            pbVar20 = local_cc;
          }
        }
        local_cc = pbVar20;
        if (local_be != '\0') {
          if (local_bd == 0) {
            local_34 = (uint *)0x0;
            local_30 = (uint *)0x0;
          }
          else {
            local_34 = local_ac;
            local_30 = local_a8;
          }
          local_a0 = &local_34;
          *(uint ***)(puVar17 + -0xc) = local_a0;
          *(int *)(puVar17 + -0x10) = local_c8;
          *(undefined4 *)(puVar17 + -0x14) = 0x8ddbe;
          FUN_00073b00();
          puVar2 = *(undefined4 **)(local_d0 + 4);
          if (puVar2 == *(undefined4 **)(local_d0 + 8)) {
            *(uint ***)(puVar17 + -8) = &local_5c;
            *(undefined4 **)(puVar17 + -0xc) = puVar2;
            *(int *)(puVar17 + -0x10) = local_d0;
            *(undefined4 *)(puVar17 + -0x14) = 0x8e423;
            FUN_000726c0();
          }
          else {
            *puVar2 = local_5c;
            *(undefined4 **)(local_d0 + 4) = puVar2 + 1;
          }
          *(uint ***)(puVar17 + -0xc) = local_a0;
          *(int *)(puVar17 + -0x10) = local_e8;
          local_34 = local_e4;
          local_30 = (uint *)local_e0;
          local_2c = local_b4;
          local_28 = local_b0;
          *(undefined4 *)(puVar17 + -0x14) = 0x8de17;
          FUN_00073e70();
          puVar18 = (uint *)*param_7;
          if (param_7[1] != 0) {
            *(undefined ***)(puVar17 + -8) = local_a4 + -0x65b70;
            *(undefined4 *)(puVar17 + -0xc) = 0xc0;
            *(undefined ***)(puVar17 + -0x10) = local_a4 + -0x672d3;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar17 + -0x14) = 0x8e803;
            FUN_002446e0();
          }
          local_30 = (uint *)0x0;
          puVar2 = (undefined4 *)local_d4[1];
          local_34 = puVar18;
          if (puVar2 == (undefined4 *)local_d4[2]) {
            *(uint ***)(puVar17 + -8) = local_a0;
            *(undefined4 **)(puVar17 + -0xc) = puVar2;
            *(undefined ***)(puVar17 + -0x10) = local_d4;
            *(undefined4 *)(puVar17 + -0x14) = 0x8e445;
            FUN_00072a40();
          }
          else {
            *puVar2 = puVar18;
            puVar2[1] = 0;
            local_d4[1] = (undefined *)(puVar2 + 2);
          }
          local_54 = (uint *)0x0;
          *(uint ***)(puVar17 + -0xc) = &local_54;
          *(int *)(puVar17 + -0x10) = local_ec;
          *(undefined4 *)(puVar17 + -0x14) = 0x8de6e;
          FUN_00074020();
          ppuVar10 = extraout_ECX_03;
        }
        puVar16 = puVar17;
        if (local_bd != 0) goto LAB_0008de7e;
      }
LAB_0008db0d:
      local_dc = local_dc + 1;
      param_7 = param_7 + 6;
    } while (param_8 != local_dc);
  }
  if (local_4c[0] != local_f8) {
    *(byte **)(puVar17 + -0x10) = local_4c[0];
    *(undefined4 *)(puVar17 + -0x14) = 0x8dc0a;
    FUN_003ae080();
  }
  return;
}

