
/* WARNING: Removing unreachable block (ram,0x0007822c) */
/* WARNING: Removing unreachable block (ram,0x00078233) */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: gc_process_relocs<64, false, (anonymous namespace)::Target_powerpc<64,
   false>, (anonymous namespace)::Target_powerpc<64, false>::Scan, gold::Default_classify_reloc<4,
   64, false> > */

void gold::
     gc_process_relocs<64,_false,_(anonymous_namespace)::Target_powerpc<64,_false>,_(anonymous_namespace)::Target_powerpc<64,_false>::Scan,_gold::Default_classify_reloc<4,_64,_false>_>
               (Symbol_table *symtab,Layout *param_2,Target_powerpc<64,_false> *target,
               Sized_relobj_file<64,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count
               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)

{
  char *pcVar1;
  Output_data *pOVar2;
  pointer puVar3;
  Sized_relobj_file<64,_false> *pSVar4;
  char *pcVar5;
  int *piVar6;
  int iVar7;
  code *pcVar8;
  _Hash_node_base *p_Var9;
  Sized_relobj_file<64,_false> *pSVar10;
  pointer ppSVar11;
  char *pcVar12;
  Address AVar13;
  Section_id *pSVar14;
  Output_segment *pOVar15;
  Target_powerpc<64,_false> *pTVar16;
  char cVar17;
  size_t sVar18;
  _func_int_varargs **pp_Var19;
  pointer ppOVar20;
  pointer pcVar21;
  Output_segment *extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 uVar22;
  char *pcVar23;
  char *pcVar24;
  int iVar25;
  undefined4 extraout_ECX_01;
  undefined4 extraout_ECX_02;
  byte bVar26;
  byte bVar27;
  uint uVar28;
  undefined4 *puVar29;
  undefined4 *puVar30;
  byte *pbVar31;
  int unaff_EDI;
  _func_int_varargs **pp_Var32;
  _Alloc_hider _Var33;
  Relobj *pRVar34;
  bool bVar35;
  bool bVar36;
  bool bVar37;
  byte bVar38;
  undefined8 uVar39;
  undefined1 auStack_11c [8];
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *local_114;
  __node_gen_type *local_110;
  Relobj *local_10c;
  Compressed_section_map *local_108;
  Reloc_addend_size_info *local_104;
  Addend_info *local_100;
  mapped_type *local_fc;
  Symbol_info *local_f8;
  Offset_info *local_f4;
  undefined1 *local_f0;
  int local_ec;
  _func_int_varargs **local_e8;
  byte *local_e4;
  int local_e0;
  bool local_da;
  char local_d9;
  __bucket_type *local_d8;
  int local_d4;
  pointer local_d0;
  Output_segment *local_cc;
  uint local_c8;
  Section_id *local_c4;
  Output_segment *local_c0;
  Relobj *local_bc;
  pointer local_b8;
  Symbol_table *local_b4;
  Target_powerpc<64,_false> *local_b0;
  _Hash_node_base *local_ac;
  char *local_a8;
  undefined1 local_a4 [8];
  __node_gen_type __node_gen_2;
  __node_gen_type __node_gen_3;
  __node_gen_type __node_gen_1;
  __node_gen_type __node_gen;
  Section_id *local_8c;
  Section_id *local_88;
  Output_segment *local_84;
  Symbol_table *local_80;
  Output_segment *local_7c;
  uint local_78;
  Section_id src_id_1;
  Section_id dst_id;
  Scan scan;
  string src_section_name;
  Section_id src_id;
  Relobj *local_2c;
  _Alloc_hider local_28;
  
  bVar38 = 0;
  uVar39 = __x86_get_pc_thunk_di();
  local_b0 = (Target_powerpc<64,_false> *)((ulonglong)uVar39 >> 0x20);
  local_ec = (int)uVar39;
  local_e0 = unaff_EDI + 0x39c927;
  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;
  if (*(int *)(*(int *)local_e4 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */
    do_gold_unreachable((char *)(unaff_EDI + 0x26ab94),0x5c,&UNK_0027eccf + unaff_EDI);
  }
  local_c0 = extraout_ECX;
  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {
    local_114 = &src_section_name.field_2;
    src_section_name._M_dataplus._M_p = (pointer)local_114;
                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&src_section_name,unaff_EDI + 0x299add,unaff_EDI + 0x299add);
    puVar29 = (undefined4 *)auStack_11c;
    uVar22 = extraout_ECX_01;
  }
  else {
    pOVar2 = extraout_ECX->output_lists_[0].
             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
             _M_start[0x10];
    if (pOVar2 == (Output_data *)(&UNK_00039d57 + unaff_EDI)) {
                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */
      elfcpp::Elf_file<64,_false,_gold::Object>::section_name
                ((Elf_file<64,_false,_gold::Object> *)(extraout_ECX->output_lists_ + 0xc),
                 (uint)symtab);
      uVar22 = extraout_ECX_00;
    }
    else {
      (*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);
      uVar22 = extraout_ECX_02;
    }
    puVar29 = (undefined4 *)&stack0xfffffee0;
    local_114 = &src_section_name.field_2;
  }
  _Var33._M_p = src_section_name._M_dataplus._M_p;
  iVar25 = *(int *)local_e4;
  if (*(int *)(iVar25 + 8) == 0) {
    *(undefined4 *)((int)puVar29 + -4) = uVar22;
    *(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;
    *(undefined4 *)((int)puVar29 + -0xc) = 0x5c;
    *(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)((int)puVar29 + -0x14) = 0x78688;
    do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),
                        *(char **)((int)puVar29 + -8));
  }
  if (*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 0) {
LAB_000777af:
    local_d9 = '\0';
    local_104 = (Reloc_addend_size_info *)0x0;
    local_f4 = (Offset_info *)0x0;
    local_100 = (Addend_info *)0x0;
    local_f8 = (Symbol_info *)0x0;
    local_fc = (mapped_type *)0x0;
  }
  else {
    local_bc = (Relobj *)&local_2c;
    src_id.first = (Relobj *)&local_2c;
    pcVar21 = (pointer)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {
      *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;
      *(undefined4 *)((int)puVar29 + -0x14) = 0x78417;
      sVar18 = strlen(*(char **)((int)puVar29 + -0x10));
      pcVar21 = _Var33._M_p + sVar18;
    }
    *(undefined4 *)((int)puVar29 + -4) = 0;
    *(pointer *)((int)puVar29 + -8) = pcVar21;
    local_c4 = &src_id;
    *(pointer *)((int)puVar29 + -0xc) = _Var33._M_p;
    *(Section_id **)((int)puVar29 + -0x10) = local_c4;
    *(undefined4 *)((int)puVar29 + -0x14) = 0x7842f;
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>();
    iVar25 = 5;
    bVar35 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar29 + -0x10);
    bVar37 = puVar29 == (undefined4 *)0x0;
    pbVar31 = (byte *)(local_e0 + -0x11d050);
    pRVar34 = src_id.first;
    do {
      if (iVar25 == 0) break;
      iVar25 = iVar25 + -1;
      bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;
      bVar35 = *pbVar31 < bVar27;
      bVar37 = *pbVar31 == bVar27;
      pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
      pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);
    } while (bVar37);
    bVar36 = false;
    bVar35 = (!bVar35 && !bVar37) == bVar35;
    if (!bVar35) {
      iVar25 = 0xf;
      pbVar31 = (byte *)(local_e0 + -0x11cf51);
      pRVar34 = src_id.first;
      do {
        if (iVar25 == 0) break;
        iVar25 = iVar25 + -1;
        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;
        bVar36 = *pbVar31 < bVar27;
        bVar35 = *pbVar31 == bVar27;
        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);
      } while (bVar35);
      if ((!bVar36 && !bVar35) != bVar36) {
        if (src_id.first == local_bc) {
          iVar25 = *(int *)local_e4;
        }
        else {
          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;
          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;
          operator_delete(*(void **)((int)puVar29 + -0x10));
          iVar25 = *(int *)local_e4;
        }
        goto LAB_000777af;
      }
    }
    if (src_id.first != local_bc) {
      *(Relobj **)((int)puVar29 + -0x10) = src_id.first;
      *(undefined4 *)((int)puVar29 + -0x14) = 0x78664;
      operator_delete(*(void **)((int)puVar29 + -0x10));
    }
    *(Section_id **)((int)puVar29 + -0xc) = local_c4;
    src_id.first = (Relobj *)local_c0;
    src_id.second = (uint)symtab;
    local_bc = *(Relobj **)(local_ec + 0x15c);
    *(Symbols_data ***)((int)puVar29 + -0x10) = &(*(Relobj **)(local_ec + 0x15c))->sd_;
    *(undefined4 *)((int)puVar29 + -0x14) = 0x784b0;
    local_fc = 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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -0xc));
    local_f8 = &local_fc->symbol_info;
    local_104 = &local_fc->reloc_addend_size_info;
    local_100 = &local_fc->addend_info;
    local_f4 = &local_fc->offset_info;
    iVar25 = *(int *)local_e4;
    local_d9 = '\x01';
  }
  pTVar16 = local_b0;
  if (*(int *)(iVar25 + 8) == 0) {
    *(undefined4 *)((int)puVar29 + -4) = 0;
    *(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;
    *(undefined4 *)((int)puVar29 + -0xc) = 0x5c;
    *(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */
    *(undefined1 **)((int)puVar29 + -0x14) = &LAB_000786bc;
    do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),
                        *(char **)((int)puVar29 + -8));
  }
  if (*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 2) {
    AVar13 = local_b0->invalid_address;
    *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;
    pcVar8 = *(code **)((int)AVar13 + 0x48);
    *(undefined4 *)((int)puVar29 + -0x14) = 0x7831b;
    cVar17 = (*pcVar8)();
    if (cVar17 != '\0') {
      iVar25 = (int)pTVar16->invalid_address;
      pcVar8 = *(code **)(iVar25 + 8);
      if (pcVar8 == (code *)(local_e0 + -0x36d580)) {
        pcVar8 = *(code **)(iVar25 + 0x4c);
        bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);
        bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);
        if (bVar37) {
          iVar25 = 0xc;
          pbVar31 = (byte *)(local_e0 + -0x11c39e);
          _Var33 = src_section_name._M_dataplus;
          do {
            if (iVar25 == 0) break;
            iVar25 = iVar25 + -1;
            bVar35 = *pbVar31 < (byte)*_Var33._M_p;
            bVar37 = *pbVar31 == *_Var33._M_p;
            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);
          } while (bVar37);
          bVar36 = false;
          bVar35 = (!bVar35 && !bVar37) == bVar35;
          if (!bVar35) {
            iVar25 = 0x11;
            pbVar31 = (byte *)(local_e0 + -0x11c391);
            _Var33 = src_section_name._M_dataplus;
            do {
              if (iVar25 == 0) break;
              iVar25 = iVar25 + -1;
              bVar36 = *pbVar31 < (byte)*_Var33._M_p;
              bVar35 = *pbVar31 == *_Var33._M_p;
              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);
            } while (bVar35);
            bVar37 = false;
            bVar35 = (!bVar36 && !bVar35) == bVar36;
            if (!bVar35) {
              iVar25 = 0xc;
              pbVar31 = (byte *)(local_e0 + -0x11c37f);
              _Var33 = src_section_name._M_dataplus;
              do {
                if (iVar25 == 0) break;
                iVar25 = iVar25 + -1;
                bVar37 = *pbVar31 < (byte)*_Var33._M_p;
                bVar35 = *pbVar31 == *_Var33._M_p;
                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);
              } while (bVar35);
              bVar36 = false;
              bVar35 = (!bVar37 && !bVar35) == bVar37;
              if (!bVar35) {
                iVar25 = 0x11;
                pbVar31 = (byte *)(local_e0 + -0x11c372);
                _Var33 = src_section_name._M_dataplus;
                do {
                  if (iVar25 == 0) break;
                  iVar25 = iVar25 + -1;
                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;
                  bVar35 = *pbVar31 == *_Var33._M_p;
                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);
                } while (bVar35);
                bVar37 = false;
                bVar35 = (!bVar36 && !bVar35) == bVar36;
                if (!bVar35) {
                  iVar25 = 9;
                  pbVar31 = (byte *)(local_e0 + -0x11c360);
                  _Var33 = src_section_name._M_dataplus;
                  do {
                    if (iVar25 == 0) break;
                    iVar25 = iVar25 + -1;
                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;
                    bVar35 = *pbVar31 == *_Var33._M_p;
                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);
                  } while (bVar35);
                  local_da = (!bVar37 && !bVar35) != bVar37;
                  goto LAB_00077807;
                }
              }
            }
          }
          goto LAB_00077800;
        }
        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;
        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;
        *(undefined4 *)((int)puVar29 + -0x14) = 0x78586;
        local_da = (bool)(*pcVar8)();
      }
      else {
        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;
        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;
                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */
        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;
        local_da = (bool)(*pcVar8)();
      }
      goto LAB_00077807;
    }
  }
LAB_00077800:
  local_da = false;
LAB_00077807:
  if (target != (Target_powerpc<64,_false> *)0x0) {
    local_e8 = (_func_int_varargs **)0x0;
    local_f0 = local_a4;
    local_b0 = (Target_powerpc<64,_false> *)0x0;
    local_110 = &__node_gen;
    puVar30 = puVar29;
    do {
      pOVar15 = local_c0;
      local_d8 = (param_2->namepool_).string_set_._M_h._M_buckets;
      local_b8 = (pointer)(param_2->namepool_).string_set_._M_h._M_element_count;
      pSVar4 = (Sized_relobj_file<64,_false> *)(param_2->namepool_).string_set_._M_h._M_bucket_count
      ;
      local_bc = (Relobj *)(param_2->namepool_).string_set_._M_h._M_before_begin._M_nxt;
      if (pSVar4 < src_obj) {
        if (src_indx == 0) {
          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;
          *(undefined4 *)((int)puVar30 + -0xc) = 0xea;
          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)puVar30 + -0x14) = 0x785a9;
          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                              *(char **)((int)puVar30 + -8));
        }
        iVar25 = src_indx + (int)pSVar4 * 0x18;
        local_b4 = (Symbol_table *)(uint)*(ushort *)(iVar25 + 6);
        puVar29 = puVar30;
        if (local_b4 < (Symbol_table *)0xff00) {
LAB_000779f0:
          local_cc = *(Output_segment **)(iVar25 + 8);
          local_c8 = *(uint *)(iVar25 + 0xc);
          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +
                     (int)&local_cc->output_lists_[0].
                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
          ;
          local_d0 = local_b8 +
                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);
          if (local_d9 != '\0') {
            src_id.first = (Relobj *)local_c0;
            src_id.second = (uint)local_b4;
            *(Section_id **)((int)puVar30 + -0xc) = &src_id;
            *(mapped_type **)((int)puVar30 + -0x10) = local_fc;
            local_c4 = &src_id;
            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a51;
            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)puVar30 + -0x10),
                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));
            bVar35 = true;
            if ((*(byte *)(iVar25 + 4) & 0xf) != 3) goto LAB_000778c8;
LAB_00077a68:
            *(Section_id **)((int)puVar30 + -0xc) = local_c4;
            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;
            src_id.first = (Relobj *)0xffffffff;
            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a83;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));
            goto LAB_000778e3;
          }
        }
        else {
          if (local_b4 == (Symbol_table *)0xffff) {
            ppOVar20 = local_c0->output_lists_[4].
                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                       _M_impl._M_start;
            if (ppOVar20 == (pointer)0x0) {
              ppOVar20 = local_c0->output_lists_[0].
                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                         ._M_impl._M_start;
              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;
              pOVar2 = ppOVar20[0x1b];
              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;
              ppOVar20 = (pointer)(*(code *)pOVar2)();
              pOVar15->output_lists_[4].
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_start = ppOVar20;
            }
            *(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;
            *(Output_segment **)((int)puVar30 + -0xc) = local_c0;
            *(pointer *)((int)puVar30 + -0x10) = ppOVar20;
            *(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;
            local_b4 = (Symbol_table *)
                       Xindex::sym_xindex_to_shndx
                                 (*(Xindex **)((int)puVar30 + -0x10),
                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));
            goto LAB_000779f0;
          }
          local_cc = *(Output_segment **)(iVar25 + 8);
          local_c8 = *(uint *)(iVar25 + 0xc);
          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +
                     (int)&local_cc->output_lists_[0].
                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
          ;
          local_d0 = local_b8 +
                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);
          if (local_d9 == '\0') goto LAB_00077980;
          src_id.first = (Relobj *)0x0;
          *(Section_id **)((int)puVar30 + -0xc) = &src_id;
          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;
          src_id.second = 0;
          local_c4 = &src_id;
                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */
          *(undefined4 *)((int)puVar30 + -0x14) = 0x778b4;
          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)puVar30 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));
          bVar35 = false;
          if ((*(byte *)(iVar25 + 4) & 0xf) == 3) goto LAB_00077a68;
LAB_000778c8:
          *(Section_id **)((int)puVar30 + -0xc) = local_c4;
          *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;
          src_id.first = (Relobj *)0x0;
          *(undefined4 *)((int)puVar30 + -0x14) = 0x778e3;
          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>
                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));
LAB_000778e3:
          *(Section_id **)((int)puVar30 + -0xc) = local_c4;
          *(Addend_info **)((int)puVar30 + -0x10) = local_100;
          src_id.first = (Relobj *)local_cc;
          src_id.second = local_c8;
          local_2c = local_bc;
          local_28._M_p = local_b8;
          *(undefined4 *)((int)puVar30 + -0x14) = 0x7791e;
          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)puVar30 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));
          if (param_2->script_options_ != (Script_options *)0x0) {
            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;
            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;
            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar30 + -0x14) = 0x78648;
            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                                *(char **)((int)puVar30 + -8));
          }
          src_id.first = (Relobj *)param_2->number_of_input_files_;
          src_id.second = 0;
          puVar3 = (local_f4->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          if (puVar3 == (local_f4->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Section_id **)((int)puVar30 + -8) = local_c4;
            *(pointer *)((int)puVar30 + -0xc) = puVar3;
            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;
            *(undefined4 *)((int)puVar30 + -0x14) = 0x78155;
            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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),
                       *(ulonglong **)((int)puVar30 + -8));
          }
          else {
            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;
            *(undefined4 *)((int)puVar3 + 4) = 0;
            (local_f4->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar3 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;
          *(undefined4 *)((int)puVar30 + -0x14) = 0x77975;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)
                     ,*(uint **)((int)puVar30 + -0xc));
          if (!bVar35) goto LAB_00077980;
        }
        if ((((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)) &&
            (local_bc = (Relobj *)
                        local_c0->output_lists_[0x1c].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_start, ((uint)local_bc & 3) != 1)) &&
           (((__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)))
           ) {
          local_bc = *(Relobj **)(local_ec + 0x15c);
          local_7c = local_c0;
          local_78 = (uint)*(ushort *)(iVar25 + 6);
          *(undefined4 *)((int)puVar30 + -0xc) = 1;
          *(undefined4 *)((int)puVar30 + -0x10) = 0;
          __node_gen_2._M_h = (__hashtable_alloc *)&(local_bc->super_Object).compressed_sections_;
          *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_2;
          *(Output_segment ***)((int)puVar30 + -0x18) = &local_7c;
          *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_2._M_h;
          *(undefined1 **)((int)puVar30 + -0x20) = local_f0;
          *(undefined4 *)((int)puVar30 + -0x24) = 0x77ddf;
          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>_>_>_>
                    ();
          puVar30 = (undefined4 *)((int)puVar30 + -4);
        }
        puVar29 = puVar30;
        if (symtab != local_b4) {
          local_cc = local_c0;
LAB_00077afb:
          if (*(int *)(*(int *)local_e4 + 8) == 0) {
            puVar30[-2] = local_e0 + -0x11dc58;
            puVar30[-3] = 0x5c;
            puVar30[-4] = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
            puVar30[-5] = 0x785c7;
            do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);
          }
          puVar29 = puVar30;
          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {
            pRVar34 = *(Relobj **)(local_ec + 0x158);
            src_id_1.first = (Relobj *)local_c0;
            src_id_1.second = (uint)symtab;
            pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;
            dst_id.first = (Relobj *)local_cc;
            dst_id.second = (uint)local_b4;
            pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);
            if (pcVar5 == (char *)0x0) {
LAB_00077ba0:
              puVar30[-4] = &local_8c;
              local_8c = &src_id_1;
              puVar30[-5] = 0x77bc1;
              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>_>_>_>_>_>
                          *)puVar30[-4],(_Base_ptr)puVar30[-3],
                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],
                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);
              pcVar24 = local_a8;
            }
            else {
              local_bc = pRVar34;
              pcVar23 = pcVar1;
              do {
                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&
                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||
                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {
                  pcVar5 = *(char **)(pcVar24 + 8);
                  pcVar23 = pcVar24;
                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;
                }
                pcVar12 = pcVar24 + 0xc;
                pcVar5 = *(char **)pcVar12;
                pcVar24 = pcVar23;
              } while (*(char **)pcVar12 != (char *)0x0);
LAB_00077b7c:
              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||
                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&
                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;
            }
            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);
            puVar30[-3] = 1;
            puVar30[-4] = 0;
            puVar30[-5] = local_110;
            puVar30[-6] = &dst_id;
            puVar30[-7] = __node_gen._M_h;
            puVar30[-8] = local_f0;
            puVar30[-9] = 0x77bf0;
            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>_>_>_>
                      ();
            iVar25 = local_ec;
            piVar6 = *(int **)(*(int *)local_e4 + 0xc);
            if (piVar6 == (int *)0x0) {
              puVar30[-3] = local_e0 + -0x11dfa8;
              puVar30[-4] = 0x73;
              puVar30[-5] = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
              puVar30[-6] = 0x78627;
              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);
            }
            iVar7 = *piVar6;
            puVar30[-2] = local_d0;
            puVar30[-3] = local_d4;
            puVar30[-4] = local_b4;
            puVar30[-5] = local_cc;
            puVar30[-6] = symtab;
            puVar30[-7] = local_c0;
            puVar30[-8] = local_ec;
            puVar30[-9] = piVar6;
            pcVar8 = *(code **)(iVar7 + 0x104);
            puVar30[-10] = 0x77c37;
            (*pcVar8)();
            pp_Var19 = local_e8;
            puVar29 = puVar30 + -1;
            if (local_e8 != (_func_int_varargs **)0x0) {
              iVar25 = *(int *)(iVar25 + 0x158);
              puVar30[-5] = local_e8;
              local_c4 = &src_id;
              local_bc = (Relobj *)&local_2c;
              src_id.first = (Relobj *)&local_2c;
              puVar30[-6] = 0x77c74;
              sVar18 = strlen((char *)puVar30[-5]);
              pSVar14 = local_c4;
              puVar30[-2] = 0;
              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);
              puVar30[-4] = pp_Var19;
              puVar30[-5] = local_c4;
              puVar30[-6] = 0x77c89;
              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
              _M_construct<char_const*>();
              puVar30[-3] = pSVar14;
              puVar30[-4] = iVar25 + 0x44;
              puVar30[-5] = &local_ac;
              puVar30[-6] = 0x77c9d;
              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>_>_>_>_>_>
                      *)puVar30[-5],
                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)
                     puVar30[-4]);
              p_Var9 = local_ac;
              if (src_id.first != local_bc) {
                puVar30[-6] = src_id.first;
                puVar30[-7] = 0x77cc0;
                operator_delete((void *)puVar30[-6]);
              }
              pRVar34 = *(Relobj **)(local_ec + 0x158);
              puVar29 = puVar30 + -2;
              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {
                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;
                src_id.second = (uint)symtab;
                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);
                src_id.first = (Relobj *)local_c0;
                if (pcVar5 == (char *)0x0) {
LAB_00078190:
                  puVar30[-6] = &local_88;
                  local_88 = local_c4;
                  puVar30[-7] = 0x781b4;
                  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>_>_>_>_>_>
                              *)puVar30[-6],(_Base_ptr)puVar30[-5],
                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],
                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);
                  pcVar24 = local_a8;
                }
                else {
                  local_bc = pRVar34;
                  pcVar23 = pcVar1;
                  do {
                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&
                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||
                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {
                      pcVar5 = *(char **)(pcVar24 + 8);
                      pcVar23 = pcVar24;
                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;
                    }
                    pcVar12 = pcVar24 + 0xc;
                    pcVar5 = *(char **)pcVar12;
                    pcVar24 = pcVar23;
                  } while (*(char **)pcVar12 != (char *)0x0);
LAB_00077d27:
                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||
                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&
                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;
                }
                puVar29 = puVar30 + -2;
                puVar30 = puVar30 + -2;
                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;
                    p_Var9 = p_Var9->_M_nxt) {
                  *(undefined4 *)((int)puVar30 + -0xc) = 1;
                  *(undefined4 *)((int)puVar30 + -0x10) = 0;
                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;
                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;
                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =
                       (__hashtable_alloc *)(pcVar24 + 0x18);
                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;
                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;
                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);
                  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>_>_>_>
                            ();
                  puVar29 = (undefined4 *)((int)puVar30 + -4);
                  puVar30 = (undefined4 *)((int)puVar30 + -4);
                }
              }
            }
          }
        }
      }
      else {
        pSVar10 = (Sized_relobj_file<64,_false> *)
                  local_c0->output_lists_[0xe].
                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                  _M_impl._M_end_of_storage;
        if (pSVar4 < pSVar10) {
          src_id_1.first = (Relobj *)0x0;
LAB_000780d7:
          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;
          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;
          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;
                    /* WARNING: Subroutine does not return */
          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;
          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                              *(char **)((int)puVar30 + -8));
        }
        uVar28 = (int)pSVar4 - (int)pSVar10;
        ppOVar20 = local_c0->output_lists_[0xf].
                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                   _M_impl._M_end_of_storage;
        local_b4 = (Symbol_table *)
                   local_c0->output_lists_[0x10].
                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                   _M_impl._M_start;
        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {
          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;
          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;
          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;
          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                              *(char **)((int)puVar30 + -8));
        }
        src_id_1.first = (Relobj *)ppOVar20[uVar28];
        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;
          *(int *)((int)puVar30 + -0x10) = local_ec;
          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;
          src_id_1.first =
               (Relobj *)
               Symbol_table::resolve_forwards
                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)
                         );
        }
        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;
          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +
                     (int)&(local_10c->super_Object)._vptr_Object;
          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);
          if (((uint)local_cc->output_lists_[3].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_end_of_storage & 1) == 0) {
            local_b4 = (Symbol_table *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;
            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;
            bVar35 = bVar26 < 2;
            bVar37 = bVar26 == 2;
            if (bVar37) {
              bVar35 = false;
              bVar37 = local_da == false;
              if (!bVar37) {
                if (bVar27 != 0) {
                  local_c4 = (Section_id *)
                             local_c0->output_lists_[0x1c].
                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                             ._M_impl._M_start;
                  uVar28 = (uint)local_c4 & 3;
                  bVar35 = uVar28 == 0;
                  bVar37 = uVar28 == 1;
                  if ((bVar37) ||
                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18
                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))
                  goto LAB_00077ec0;
                }
                local_c4 = *(Section_id **)(local_ec + 0x15c);
                *(undefined4 *)((int)puVar30 + -0xc) = 1;
                *(undefined4 *)((int)puVar30 + -0x10) = 0;
                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;
                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;
                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;
                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;
                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;
                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */
                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;
                local_84 = local_cc;
                local_80 = local_b4;
                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>_>_>_>
                          ();
                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);
                bVar37 = puVar30 == (undefined4 *)0x4;
                puVar30 = (undefined4 *)((int)puVar30 + -4);
              }
            }
          }
          else {
            local_b4 = (Symbol_table *)0x0;
            bVar35 = false;
            bVar27 = 0;
            bVar37 = true;
            local_cc = (Output_segment *)0x0;
          }
        }
        else {
          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;
          local_b4 = (Symbol_table *)0x0;
          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;
          local_cc = (Output_segment *)0x0;
          bVar35 = false;
          bVar27 = 0;
          bVar37 = true;
          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +
                     (int)&(local_10c->super_Object)._vptr_Object;
          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);
        }
LAB_00077ec0:
        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;
        iVar25 = 8;
        pbVar31 = (byte *)(local_e0 + -0x11cf31);
        pp_Var32 = pp_Var19;
        do {
          if (iVar25 == 0) break;
          iVar25 = iVar25 + -1;
          bVar35 = *pbVar31 < *(byte *)pp_Var32;
          bVar37 = *pbVar31 == *(byte *)pp_Var32;
          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);
        } while (bVar37);
        bVar36 = false;
        bVar35 = (!bVar35 && !bVar37) == bVar35;
        if (bVar35) {
          local_e8 = pp_Var19 + 2;
        }
        else {
          iVar25 = 7;
          pbVar31 = (byte *)(local_e0 + -0x11cf28);
          pp_Var32 = pp_Var19;
          do {
            if (iVar25 == 0) break;
            iVar25 = iVar25 + -1;
            bVar36 = *pbVar31 < *(byte *)pp_Var32;
            bVar35 = *pbVar31 == *(byte *)pp_Var32;
            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;
            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);
          } while (bVar35);
          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);
          if ((!bVar36 && !bVar35) != bVar36) {
            pp_Var19 = local_e8;
          }
          local_e8 = pp_Var19;
        }
        if (local_d9 != '\0') {
          if (bVar27 == 0) {
            src_id.first = (Relobj *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (Relobj *)local_cc;
            src_id.second = (uint)local_b4;
          }
          *(Section_id **)((int)puVar30 + -0xc) = &src_id;
          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;
          local_c4 = &src_id;
          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;
          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)puVar30 + -0x10),
                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));
          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                     _M_impl._M_finish;
          if (ppSVar11 ==
              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
              _M_end_of_storage) {
            *(Section_id **)((int)puVar30 + -8) = &src_id_1;
            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;
            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;
            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;
            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
            _M_realloc_insert<gold::Symbol*_const&>
                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)
                        ((int)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),
                       *(Symbol ***)((int)puVar30 + -8));
          }
          else {
            *ppSVar11 = (Symbol *)src_id_1.first;
            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
            _M_finish = ppSVar11 + 1;
          }
          *(Section_id **)((int)puVar30 + -0xc) = local_c4;
          *(Addend_info **)((int)puVar30 + -0x10) = local_100;
          src_id.first = local_10c;
          src_id.second = (uint)local_108;
          local_2c = local_bc;
          local_28._M_p = local_b8;
          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;
          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)puVar30 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));
          if (param_2->script_options_ != (Script_options *)0x0) {
            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;
            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;
            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;
            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                                *(char **)((int)puVar30 + -8));
          }
          src_id.first = (Relobj *)param_2->number_of_input_files_;
          src_id.second = 0;
          puVar3 = (local_f4->
                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                   )._M_impl._M_finish;
          if (puVar3 == (local_f4->
                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                        )._M_impl._M_end_of_storage) {
            *(Section_id **)((int)puVar30 + -8) = local_c4;
            *(pointer *)((int)puVar30 + -0xc) = puVar3;
            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;
            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;
            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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),
                       *(ulonglong **)((int)puVar30 + -8));
          }
          else {
            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;
            *(undefined4 *)((int)puVar3 + 4) = 0;
            (local_f4->
            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).
            _M_impl._M_finish = puVar3 + 1;
          }
          dst_id.first = (Relobj *)0x0;
          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;
          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;
          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;
          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)
                     ,*(uint **)((int)puVar30 + -0xc));
        }
        puVar29 = puVar30;
        if (bVar27 != 0) goto LAB_00077afb;
      }
LAB_00077980:
      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);
      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;
      puVar30 = puVar29;
    } while (target != local_b0);
  }
  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_114) {
    *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;
    *(undefined4 *)((int)puVar29 + -0x14) = 0x78222;
    operator_delete(*(void **)((int)puVar29 + -0x10));
  }
  return;
}



void FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)

{
  byte *****pppppbVar1;
  undefined4 *puVar2;
  byte ****ppppbVar3;
  int *piVar4;
  int iVar5;
  code *pcVar6;
  byte ***pppbVar7;
  byte *****pppppbVar8;
  char cVar9;
  size_t sVar10;
  byte ****ppppbVar11;
  undefined4 uVar12;
  byte *pbVar13;
  byte *****extraout_ECX;
  undefined4 extraout_ECX_00;
  byte *****pppppbVar14;
  byte *****pppppbVar15;
  int iVar16;
  undefined4 extraout_ECX_01;
  undefined4 extraout_ECX_02;
  byte bVar17;
  uint uVar18;
  undefined1 *puVar19;
  undefined1 *puVar20;
  byte *pbVar21;
  int unaff_EDI;
  byte ****ppppbVar22;
  byte *****pppppbVar23;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  undefined8 uVar28;
  undefined1 auStack_11c [8];
  byte *local_114;
  byte ****local_110;
  byte ***local_10c;
  byte ***local_108;
  int local_104;
  int local_100;
  int local_fc;
  int local_f8;
  int local_f4;
  undefined1 *local_f0;
  int local_ec;
  byte ***local_e8;
  byte *local_e4;
  int local_e0;
  char local_da;
  char local_d9;
  uint local_d8;
  byte *local_d4;
  int local_d0;
  byte ****local_cc;
  int local_c8;
  byte ****local_c4;
  byte ****local_c0;
  byte ****local_bc;
  int local_b8;
  byte ***local_b4;
  int *local_b0;
  byte ****local_ac;
  byte ****local_a8;
  undefined1 local_a4 [8];
  byte ****local_9c;
  byte ****local_98;
  byte ****local_94;
  byte ****local_90;
  byte ****local_8c;
  byte ****local_88;
  byte ****local_84;
  byte ***local_80;
  byte ****local_7c;
  uint local_78;
  byte ****local_74;
  byte ***local_70;
  byte ****local_6c;
  byte ***local_68;
  int local_64;
  int local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined1 local_50;
  byte *local_4c [2];
  byte local_44 [16];
  byte ****local_34;
  byte ***local_30;
  byte ****local_2c;
  int local_28;
  
  bVar27 = 0;
  uVar28 = FUN_000b484e();
  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);
  local_ec = (int)uVar28;
  local_e0 = unaff_EDI + 0x39c927;
  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;
  local_64 = 0;
  local_60 = 0;
  local_5c = 0;
  local_58 = 0;
  local_54 = 0;
  local_50 = 0;
  if (*(int *)(*(int *)local_e4 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */
    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);
  }
  local_c0 = (byte ****)extraout_ECX;
  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {
    local_114 = local_44;
    local_4c[0] = local_114;
                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */
    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);
    puVar19 = auStack_11c;
    uVar12 = extraout_ECX_01;
  }
  else {
    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {
                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */
      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);
      uVar12 = extraout_ECX_00;
    }
    else {
      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);
      uVar12 = extraout_ECX_02;
    }
    local_114 = local_44;
    puVar19 = &stack0xfffffee0;
  }
  pbVar21 = local_4c[0];
  iVar16 = *(int *)local_e4;
  if (*(int *)(iVar16 + 8) == 0) {
    *(undefined4 *)(puVar19 + -4) = uVar12;
    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;
    *(undefined4 *)(puVar19 + -0xc) = 0x5c;
    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)(puVar19 + -0x14) = 0x78688;
    FUN_000da200();
  }
  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {
LAB_000777af:
    local_d9 = '\0';
    local_104 = 0;
    local_f4 = 0;
    local_100 = 0;
    local_f8 = 0;
    local_fc = 0;
  }
  else {
    local_bc = (byte ****)&local_2c;
    local_34 = local_bc;
    pbVar13 = (byte *)0xffffffff;
    if (local_4c[0] != (byte *)0x0) {
      *(byte **)(puVar19 + -0x10) = local_4c[0];
      *(undefined4 *)(puVar19 + -0x14) = 0x78417;
      sVar10 = strlen(*(char **)(puVar19 + -0x10));
      pbVar13 = pbVar21 + sVar10;
    }
    *(undefined4 *)(puVar19 + -4) = 0;
    *(byte **)(puVar19 + -8) = pbVar13;
    local_c4 = (byte ****)&local_34;
    *(byte **)(puVar19 + -0xc) = pbVar21;
    *(byte *****)(puVar19 + -0x10) = local_c4;
    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;
    FUN_000a8880();
    iVar16 = 5;
    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;
    bVar26 = puVar19 == (undefined1 *)0x0;
    pbVar21 = (byte *)(local_e0 + -0x11d050);
    pppppbVar23 = (byte *****)local_34;
    do {
      if (iVar16 == 0) break;
      iVar16 = iVar16 + -1;
      bVar24 = *pbVar21 < *(byte *)pppppbVar23;
      bVar26 = *pbVar21 == *(byte *)pppppbVar23;
      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);
    } while (bVar26);
    bVar25 = false;
    bVar24 = (!bVar24 && !bVar26) == bVar24;
    if (!bVar24) {
      iVar16 = 0xf;
      pbVar21 = (byte *)(local_e0 + -0x11cf51);
      pppppbVar23 = (byte *****)local_34;
      do {
        if (iVar16 == 0) break;
        iVar16 = iVar16 + -1;
        bVar25 = *pbVar21 < *(byte *)pppppbVar23;
        bVar24 = *pbVar21 == *(byte *)pppppbVar23;
        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);
      } while (bVar24);
      if ((!bVar25 && !bVar24) != bVar25) {
        if (local_34 == local_bc) {
          iVar16 = *(int *)local_e4;
        }
        else {
          *(byte *****)(puVar19 + -0x10) = local_34;
          *(undefined4 *)(puVar19 + -0x14) = 0x78539;
          FUN_00248220();
          iVar16 = *(int *)local_e4;
        }
        goto LAB_000777af;
      }
    }
    if (local_34 != local_bc) {
      *(byte *****)(puVar19 + -0x10) = local_34;
      *(undefined4 *)(puVar19 + -0x14) = 0x78664;
      FUN_00248220();
    }
    *(byte *****)(puVar19 + -0xc) = local_c4;
    local_34 = local_c0;
    local_30 = (byte ***)param_1;
    local_bc = *(byte *****)(local_ec + 0x15c);
    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;
    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;
    local_fc = FUN_000acc50();
    local_f8 = local_fc + 0xc;
    local_100 = local_fc + 0x18;
    local_f4 = local_fc + 0x24;
    local_104 = local_fc + 0x30;
    iVar16 = *(int *)local_e4;
    local_d9 = '\x01';
  }
  piVar4 = local_b0;
  if (*(int *)(iVar16 + 8) == 0) {
    *(undefined4 *)(puVar19 + -4) = 0;
    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;
    *(undefined4 *)(puVar19 + -0xc) = 0x5c;
    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */
    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;
    FUN_000da200();
  }
  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {
    iVar16 = *local_b0;
    *(int **)(puVar19 + -0x10) = local_b0;
    pcVar6 = *(code **)(iVar16 + 0x48);
    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;
    cVar9 = (*pcVar6)();
    if (cVar9 != '\0') {
      pcVar6 = *(code **)(*piVar4 + 8);
      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {
        *(byte **)(puVar19 + -0xc) = local_4c[0];
        *(int **)(puVar19 + -0x10) = local_b0;
                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */
        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;
        local_da = (*pcVar6)();
        goto LAB_00077807;
      }
      pcVar6 = *(code **)(*piVar4 + 0x4c);
      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);
      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);
      if (!bVar26) {
        *(byte **)(puVar19 + -0xc) = local_4c[0];
        *(int **)(puVar19 + -0x10) = local_b0;
        *(undefined4 *)(puVar19 + -0x14) = 0x78586;
        local_da = (*pcVar6)();
        goto LAB_00077807;
      }
      iVar16 = 0xc;
      pbVar21 = (byte *)(local_e0 + -0x11c39e);
      pbVar13 = local_4c[0];
      do {
        if (iVar16 == 0) break;
        iVar16 = iVar16 + -1;
        bVar24 = *pbVar21 < *pbVar13;
        bVar26 = *pbVar21 == *pbVar13;
        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
      } while (bVar26);
      bVar25 = false;
      bVar24 = (!bVar24 && !bVar26) == bVar24;
      if (!bVar24) {
        iVar16 = 0x11;
        pbVar21 = (byte *)(local_e0 + -0x11c391);
        pbVar13 = local_4c[0];
        do {
          if (iVar16 == 0) break;
          iVar16 = iVar16 + -1;
          bVar25 = *pbVar21 < *pbVar13;
          bVar24 = *pbVar21 == *pbVar13;
          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
        } while (bVar24);
        bVar26 = false;
        bVar24 = (!bVar25 && !bVar24) == bVar25;
        if (!bVar24) {
          iVar16 = 0xc;
          pbVar21 = (byte *)(local_e0 + -0x11c37f);
          pbVar13 = local_4c[0];
          do {
            if (iVar16 == 0) break;
            iVar16 = iVar16 + -1;
            bVar26 = *pbVar21 < *pbVar13;
            bVar24 = *pbVar21 == *pbVar13;
            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
          } while (bVar24);
          bVar25 = false;
          bVar24 = (!bVar26 && !bVar24) == bVar26;
          if (!bVar24) {
            iVar16 = 0x11;
            pbVar21 = (byte *)(local_e0 + -0x11c372);
            pbVar13 = local_4c[0];
            do {
              if (iVar16 == 0) break;
              iVar16 = iVar16 + -1;
              bVar25 = *pbVar21 < *pbVar13;
              bVar24 = *pbVar21 == *pbVar13;
              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
            } while (bVar24);
            bVar26 = false;
            bVar24 = (!bVar25 && !bVar24) == bVar25;
            if (!bVar24) {
              iVar16 = 9;
              pbVar21 = (byte *)(local_e0 + -0x11c360);
              pbVar13 = local_4c[0];
              do {
                if (iVar16 == 0) break;
                iVar16 = iVar16 + -1;
                bVar26 = *pbVar21 < *pbVar13;
                bVar24 = *pbVar21 == *pbVar13;
                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
              } while (bVar24);
              local_da = (!bVar26 && !bVar24) != bVar26;
              goto LAB_00077807;
            }
          }
        }
      }
    }
  }
  local_da = '\0';
LAB_00077807:
  if (param_3 != (int *)0x0) {
    local_e8 = (byte ***)0x0;
    local_f0 = local_a4;
    local_110 = (byte ****)&local_90;
    local_b0 = (int *)0x0;
    puVar20 = puVar19;
    do {
      ppppbVar22 = local_c0;
      local_d8 = param_2[2];
      local_b8 = param_2[5];
      ppppbVar3 = (byte ****)param_2[3];
      local_bc = (byte ****)param_2[4];
      if (ppppbVar3 < param_4) {
        if (param_5 == 0) {
          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;
          *(undefined4 *)(puVar20 + -0xc) = 0xea;
          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;
          FUN_000da200();
        }
        iVar16 = param_5 + (int)ppppbVar3 * 0x18;
        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);
        puVar19 = puVar20;
        if (local_b4 < (byte ****)0xff00) {
LAB_000779f0:
          local_cc = *(byte *****)(iVar16 + 8);
          local_c8 = *(int *)(iVar16 + 0xc);
          local_d4 = (byte *)((int)local_bc + (int)local_cc);
          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);
          if (local_d9 != '\0') {
            local_34 = local_c0;
            local_30 = local_b4;
            local_c4 = (byte ****)&local_34;
            *(byte *****)(puVar20 + -0xc) = local_c4;
            *(int *)(puVar20 + -0x10) = local_fc;
            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;
            FUN_000aa900();
            bVar24 = true;
            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;
LAB_000778c8:
            *(byte *****)(puVar20 + -0xc) = local_c4;
            *(int *)(puVar20 + -0x10) = local_f8;
            local_34 = (byte ****)0x0;
            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;
            FUN_000aafe0();
            goto LAB_000778e3;
          }
        }
        else {
          if ((byte ****)local_b4 == (byte ****)0xffff) {
            ppppbVar11 = (byte ****)local_c0[0xc];
            if (ppppbVar11 == (byte ****)0x0) {
              ppppbVar11 = (byte ****)*local_c0;
              *(byte *****)(puVar20 + -0x10) = local_c0;
              pppbVar7 = ppppbVar11[0x1b];
              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;
              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();
              ppppbVar22[0xc] = (byte ***)ppppbVar11;
            }
            *(byte *****)(puVar20 + -8) = ppppbVar3;
            *(byte *****)(puVar20 + -0xc) = local_c0;
            *(byte *****)(puVar20 + -0x10) = ppppbVar11;
            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;
            local_b4 = (byte ***)FUN_00121c60();
            goto LAB_000779f0;
          }
          local_cc = *(byte *****)(iVar16 + 8);
          local_c8 = *(int *)(iVar16 + 0xc);
          local_d4 = (byte *)((int)local_bc + (int)local_cc);
          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);
          if (local_d9 == '\0') goto LAB_00077980;
          local_c4 = (byte ****)&local_34;
          local_34 = (byte ****)0x0;
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_fc;
          local_30 = (byte ***)0x0;
                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */
          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;
          FUN_000aa900();
          bVar24 = false;
          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;
LAB_00077a68:
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_f8;
          local_34 = (byte ****)0xffffffff;
          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;
          FUN_000aafe0();
LAB_000778e3:
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_100;
          local_34 = local_cc;
          local_30 = (byte ***)local_c8;
          local_2c = local_bc;
          local_28 = local_b8;
          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;
          FUN_000ab1b0();
          pppppbVar23 = (byte *****)*param_2;
          if (param_2[1] != 0) {
            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;
            *(undefined4 *)(puVar20 + -0xc) = 0xc0;
            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar20 + -0x14) = 0x78648;
            FUN_000da200();
          }
          local_30 = (byte ***)0x0;
          puVar2 = *(undefined4 **)(local_f4 + 4);
          local_34 = (byte ****)pppppbVar23;
          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {
            *(byte *****)(puVar20 + -8) = local_c4;
            *(undefined4 **)(puVar20 + -0xc) = puVar2;
            *(int *)(puVar20 + -0x10) = local_f4;
            *(undefined4 *)(puVar20 + -0x14) = 0x78155;
            FUN_000aa950();
          }
          else {
            *puVar2 = pppppbVar23;
            puVar2[1] = 0;
            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;
          }
          local_6c = (byte ****)0x0;
          *(byte ******)(puVar20 + -0xc) = &local_6c;
          *(int *)(puVar20 + -0x10) = local_104;
          *(undefined4 *)(puVar20 + -0x14) = 0x77975;
          FUN_000ab360();
          if (!bVar24) goto LAB_00077980;
        }
        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&
            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&
           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {
          local_bc = *(byte *****)(local_ec + 0x15c);
          local_7c = local_c0;
          local_78 = (uint)*(ushort *)(iVar16 + 6);
          *(undefined4 *)(puVar20 + -0xc) = 1;
          *(undefined4 *)(puVar20 + -0x10) = 0;
          local_9c = (byte ****)((byte *****)local_bc + 0xd);
          *(byte ******)(puVar20 + -0x14) = &local_9c;
          *(byte ******)(puVar20 + -0x18) = &local_7c;
          *(byte *****)(puVar20 + -0x1c) = local_9c;
          *(undefined1 **)(puVar20 + -0x20) = local_f0;
          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;
          FUN_000a8d90();
          puVar20 = puVar20 + -4;
        }
        puVar19 = puVar20;
        if (param_1 != (byte ****)local_b4) {
          local_cc = local_c0;
LAB_00077afb:
          if (*(int *)(*(int *)local_e4 + 8) == 0) {
            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;
            *(undefined4 *)(puVar20 + -0xc) = 0x5c;
            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;
            FUN_000da200();
          }
          puVar19 = puVar20;
          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {
            pppppbVar23 = *(byte ******)(local_ec + 0x158);
            local_74 = local_c0;
            local_70 = (byte ***)param_1;
            local_6c = local_cc;
            local_68 = local_b4;
            pppppbVar8 = (byte *****)pppppbVar23[6];
            pppppbVar14 = pppppbVar23 + 5;
            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {
LAB_00077ba0:
              local_8c = (byte ****)&local_74;
              *(byte ******)(puVar20 + -0x10) = &local_8c;
              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;
              FUN_00068840();
              pppppbVar15 = (byte *****)local_a8;
            }
            else {
              do {
                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||
                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {
                  pppppbVar1 = pppppbVar15 + 3;
                  pppppbVar8 = (byte *****)*pppppbVar1;
                  pppppbVar15 = pppppbVar14;
                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;
                }
                pppppbVar8 = (byte *****)pppppbVar15[2];
                pppppbVar14 = pppppbVar15;
              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);
LAB_00077b7c:
              local_bc = (byte ****)pppppbVar23;
              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||
                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;
            }
            local_90 = (byte ****)(pppppbVar15 + 6);
            *(undefined4 *)(puVar20 + -0xc) = 1;
            *(undefined4 *)(puVar20 + -0x10) = 0;
            *(byte *****)(puVar20 + -0x14) = local_110;
            *(byte ******)(puVar20 + -0x18) = &local_6c;
            *(byte *****)(puVar20 + -0x1c) = local_90;
            *(undefined1 **)(puVar20 + -0x20) = local_f0;
            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;
            FUN_000a8cd0();
            iVar16 = local_ec;
            piVar4 = *(int **)(*(int *)local_e4 + 0xc);
            if (piVar4 == (int *)0x0) {
              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;
              *(undefined4 *)(puVar20 + -0x10) = 0x73;
              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar20 + -0x18) = 0x78627;
              FUN_000da200();
            }
            iVar5 = *piVar4;
            *(int *)(puVar20 + -8) = local_d0;
            *(byte **)(puVar20 + -0xc) = local_d4;
            *(byte ****)(puVar20 + -0x10) = local_b4;
            *(byte *****)(puVar20 + -0x14) = local_cc;
            *(byte *****)(puVar20 + -0x18) = param_1;
            *(byte *****)(puVar20 + -0x1c) = local_c0;
            *(int *)(puVar20 + -0x20) = local_ec;
            *(int **)(puVar20 + -0x24) = piVar4;
            pcVar6 = *(code **)(iVar5 + 0x104);
            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;
            (*pcVar6)();
            pppbVar7 = local_e8;
            puVar19 = puVar20 + -4;
            if ((byte ****)local_e8 != (byte ****)0x0) {
              iVar16 = *(int *)(iVar16 + 0x158);
              local_bc = (byte ****)&local_2c;
              *(byte ****)(puVar20 + -0x14) = local_e8;
              local_c4 = (byte ****)&local_34;
              local_34 = local_bc;
              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;
              sVar10 = strlen(*(char **)(puVar20 + -0x14));
              ppppbVar3 = local_c4;
              *(undefined4 *)(puVar20 + -8) = 0;
              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);
              *(byte ****)(puVar20 + -0x10) = pppbVar7;
              *(byte *****)(puVar20 + -0x14) = local_c4;
              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;
              FUN_000a8880();
              *(byte *****)(puVar20 + -0xc) = ppppbVar3;
              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;
              *(byte ******)(puVar20 + -0x14) = &local_ac;
              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;
              FUN_000aaaa0();
              ppppbVar3 = local_ac;
              if (local_34 != local_bc) {
                *(byte *****)(puVar20 + -0x18) = local_34;
                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;
                FUN_00248220();
              }
              pppppbVar23 = *(byte ******)(local_ec + 0x158);
              puVar19 = puVar20 + -8;
              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {
                local_30 = (byte ***)param_1;
                local_34 = local_c0;
                pppppbVar8 = (byte *****)pppppbVar23[6];
                pppppbVar14 = pppppbVar23 + 5;
                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {
LAB_00078190:
                  *(byte ******)(puVar20 + -0x18) = &local_88;
                  local_88 = local_c4;
                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;
                  FUN_00068840();
                  pppppbVar15 = (byte *****)local_a8;
                }
                else {
                  do {
                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||
                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {
                      pppppbVar1 = pppppbVar15 + 3;
                      pppppbVar8 = (byte *****)*pppppbVar1;
                      pppppbVar15 = pppppbVar14;
                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;
                    }
                    pppppbVar8 = (byte *****)pppppbVar15[2];
                    pppppbVar14 = pppppbVar15;
                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);
LAB_00077d27:
                  local_bc = (byte ****)pppppbVar23;
                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||
                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))
                  goto LAB_00078190;
                }
                puVar19 = puVar20 + -8;
                puVar20 = puVar20 + -8;
                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;
                    ppppbVar3 = (byte ****)*ppppbVar3) {
                  *(undefined4 *)(puVar20 + -0xc) = 1;
                  *(undefined4 *)(puVar20 + -0x10) = 0;
                  *(byte ******)(puVar20 + -0x14) = &local_94;
                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;
                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;
                  *(undefined1 **)(puVar20 + -0x20) = local_f0;
                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;
                  local_94 = (byte ****)(pppppbVar15 + 6);
                  FUN_000a8cd0();
                  puVar19 = puVar20 + -4;
                  puVar20 = puVar20 + -4;
                }
              }
            }
          }
        }
      }
      else {
        if (ppppbVar3 < local_c0[0x2c]) {
          local_74 = (byte ****)0x0;
LAB_000780d7:
          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;
          *(undefined4 *)(puVar20 + -0xc) = 0x11c;
          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;
          FUN_000da200();
        }
        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];
        local_b4 = local_c0[0x30];
        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {
          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;
          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;
          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar20 + -0x14) = 0x78609;
          FUN_000da200();
        }
        local_74 = (byte ****)local_c0[0x2f][uVar18];
        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;
        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {
          *(byte *****)(puVar20 + -0xc) = local_74;
          *(int *)(puVar20 + -0x10) = local_ec;
          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;
          local_74 = (byte ****)FUN_001e6f30();
        }
        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {
          local_10c = (byte ***)((byte *****)local_74)[0xc];
          local_108 = (byte ***)((byte *****)local_74)[0xd];
          local_d4 = (byte *)((int)local_bc + (int)local_10c);
          local_cc = ((byte *****)local_74)[2];
          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;
          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {
            local_b4 = (byte ***)((byte *****)local_74)[3];
            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;
            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;
            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;
            if (bVar26) {
              bVar24 = false;
              bVar26 = local_da == '\0';
              if (!bVar26) {
                if (bVar17 != 0) {
                  local_c4 = (byte ****)local_c0[0x54];
                  bVar24 = ((uint)local_c4 & 3) == 0;
                  bVar26 = ((uint)local_c4 & 3) == 1;
                  if ((bVar26) ||
                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&
                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))
                  goto LAB_00077ec0;
                }
                local_c4 = *(byte *****)(local_ec + 0x15c);
                *(undefined4 *)(puVar20 + -0xc) = 1;
                *(undefined4 *)(puVar20 + -0x10) = 0;
                *(byte ******)(puVar20 + -0x14) = &local_98;
                *(byte ******)(puVar20 + -0x18) = &local_84;
                local_98 = (byte ****)((byte *****)local_c4 + 0xd);
                *(byte *****)(puVar20 + -0x1c) = local_98;
                *(undefined1 **)(puVar20 + -0x20) = local_f0;
                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */
                *(undefined4 *)(puVar20 + -0x24) = 0x78301;
                local_84 = local_cc;
                local_80 = local_b4;
                FUN_000a8d90();
                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;
                bVar26 = puVar20 == (undefined1 *)0x4;
                puVar20 = puVar20 + -4;
              }
            }
          }
          else {
            local_b4 = (byte ***)0x0;
            bVar24 = false;
            bVar17 = 0;
            bVar26 = true;
            local_cc = (byte ****)0x0;
          }
        }
        else {
          local_10c = (byte ***)((byte *****)local_74)[0xc];
          local_b4 = (byte ***)0x0;
          local_108 = (byte ***)((byte *****)local_74)[0xd];
          local_cc = (byte ****)0x0;
          local_d4 = (byte *)((int)local_bc + (int)local_10c);
          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;
          bVar24 = false;
          bVar17 = 0;
          bVar26 = true;
        }
LAB_00077ec0:
        ppppbVar3 = (byte ****)*local_74;
        iVar16 = 8;
        pbVar21 = (byte *)(local_e0 + -0x11cf31);
        ppppbVar22 = ppppbVar3;
        do {
          if (iVar16 == 0) break;
          iVar16 = iVar16 + -1;
          bVar24 = *pbVar21 < *(byte *)ppppbVar22;
          bVar26 = *pbVar21 == *(byte *)ppppbVar22;
          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);
        } while (bVar26);
        bVar25 = false;
        bVar24 = (!bVar24 && !bVar26) == bVar24;
        if (bVar24) {
          ppppbVar3 = ppppbVar3 + 2;
        }
        else {
          iVar16 = 7;
          pbVar21 = (byte *)(local_e0 + -0x11cf28);
          ppppbVar22 = ppppbVar3;
          do {
            if (iVar16 == 0) break;
            iVar16 = iVar16 + -1;
            bVar25 = *pbVar21 < *(byte *)ppppbVar22;
            bVar24 = *pbVar21 == *(byte *)ppppbVar22;
            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);
          } while (bVar24);
          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);
          if ((!bVar25 && !bVar24) != bVar25) {
            ppppbVar3 = (byte ****)local_e8;
          }
        }
        local_e8 = (byte ***)ppppbVar3;
        if (local_d9 != '\0') {
          if (bVar17 == 0) {
            local_34 = (byte ****)0x0;
            local_30 = (byte ***)0x0;
          }
          else {
            local_34 = local_cc;
            local_30 = local_b4;
          }
          local_c4 = (byte ****)&local_34;
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_fc;
          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;
          FUN_000aa900();
          puVar2 = *(undefined4 **)(local_f8 + 4);
          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {
            *(byte ******)(puVar20 + -8) = &local_74;
            *(undefined4 **)(puVar20 + -0xc) = puVar2;
            *(int *)(puVar20 + -0x10) = local_f8;
            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;
            FUN_000a82c0();
          }
          else {
            *puVar2 = local_74;
            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;
          }
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_100;
          local_34 = (byte ****)local_10c;
          local_30 = local_108;
          local_2c = local_bc;
          local_28 = local_b8;
          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;
          FUN_000ab1b0();
          pppppbVar23 = (byte *****)*param_2;
          if (param_2[1] != 0) {
            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;
            *(undefined4 *)(puVar20 + -0xc) = 0xc0;
            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;
            FUN_000da200();
          }
          local_30 = (byte ***)0x0;
          puVar2 = *(undefined4 **)(local_f4 + 4);
          local_34 = (byte ****)pppppbVar23;
          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {
            *(byte *****)(puVar20 + -8) = local_c4;
            *(undefined4 **)(puVar20 + -0xc) = puVar2;
            *(int *)(puVar20 + -0x10) = local_f4;
            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;
            FUN_000aa950();
          }
          else {
            *puVar2 = pppppbVar23;
            puVar2[1] = 0;
            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;
          }
          local_6c = (byte ****)0x0;
          *(byte ******)(puVar20 + -0xc) = &local_6c;
          *(int *)(puVar20 + -0x10) = local_104;
          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;
          FUN_000ab360();
        }
        puVar19 = puVar20;
        if (bVar17 != 0) goto LAB_00077afb;
      }
LAB_00077980:
      local_b0 = (int *)((int)local_b0 + 1);
      param_2 = param_2 + 6;
      puVar20 = puVar19;
    } while (param_3 != local_b0);
  }
  if (local_4c[0] != local_114) {
    *(byte **)(puVar19 + -0x10) = local_4c[0];
    *(undefined4 *)(puVar19 + -0x14) = 0x78222;
    FUN_00248220();
  }
  if ((local_64 != 0) && (local_60 != 0)) {
    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;
    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;
    uVar12 = gettext();
    *(undefined4 *)(puVar19 + -0x10) = uVar12;
    *(undefined4 *)(puVar19 + -0x14) = local_54;
    *(undefined4 *)(puVar19 + -0x18) = local_58;
    *(undefined4 *)(puVar19 + -0x1c) = local_5c;
    *(int *)(puVar19 + -0x20) = local_60;
    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;
    FUN_000d1a30();
  }
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x000b484e
ADD EDI,0x39c927
PUSH ESI
PUSH EBX
SUB ESP,0x10c
MOV dword ptr [EBP + 0xffffff18],EAX
MOV dword ptr [EBP + 0xffffff54],EDX
LEA EAX,[EDI + 0x4e8]
MOV dword ptr [EBP + 0xffffff24],EDI
MOV dword ptr [EBP + 0xffffff44],ECX
MOV dword ptr [EBP + 0xffffff20],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x60],0x0
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x5c],0x0
MOV dword ptr [EBP + -0x58],0x0
MOV dword ptr [EBP + -0x54],0x0
MOV dword ptr [EBP + -0x50],0x0
MOV byte ptr [EBP + -0x4c],0x0
TEST EAX,EAX
JZ 0x00078688
MOV EBX,dword ptr [EAX + 0x5934]
TEST EBX,EBX
JZ 0x000784f1
MOV EDI,dword ptr [EBP + 0xffffff44]
MOV ESI,dword ptr [EBP + 0xffffff24]
MOV EAX,dword ptr [EDI]
LEA EDX,[ESI + 0xffc9d430]
MOV EAX,dword ptr [EAX + 0x40]
CMP EAX,EDX
JNZ 0x00078549
SUB ESP,0x4
LEA EAX,[EBP + -0x48]
LEA EDX,[EDI + 0x90]
PUSH dword ptr [EBP + 0x8]
PUSH EDX
PUSH EAX
CALL 0x000b1290
LEA EAX,[EBP + -0x40]
ADD ESP,0xc
MOV dword ptr [EBP + 0xfffffef0],EAX
MOV EAX,dword ptr [EBP + 0xffffff20]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x0007866c
MOV EDX,dword ptr [EDX + 0x5934]
TEST EDX,EDX
JNZ 0x000783f0
MOV byte ptr [EBP + 0xffffff2b],0x0
MOV dword ptr [EBP + 0xffffff00],0x0
MOV dword ptr [EBP + 0xffffff10],0x0
MOV dword ptr [EBP + 0xffffff04],0x0
MOV dword ptr [EBP + 0xffffff0c],0x0
MOV dword ptr [EBP + 0xffffff08],0x0
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000786a0
CMP dword ptr [EAX + 0x5934],0x2
JZ 0x0007830c
MOV byte ptr [EBP + 0xffffff2a],0x0
MOV EAX,dword ptr [EBP + 0x10]
TEST EAX,EAX
JZ 0x00078208
MOV dword ptr [EBP + 0xffffff1c],0x0
LEA EAX,[EBP + 0xffffff60]
MOV dword ptr [EBP + 0xffffff14],EAX
LEA EAX,[EBP + 0xffffff74]
MOV dword ptr [EBP + 0xffffff54],0x0
MOV dword ptr [EBP + 0xfffffef4],EAX
JMP 0x0007799a
CMP EAX,0xffff
JZ 0x00078078
MOV EAX,dword ptr [ESI + 0x8]
MOV ECX,dword ptr [EBP + 0xffffff48]
MOV EDX,dword ptr [ESI + 0xc]
MOV EBX,dword ptr [EBP + 0xffffff4c]
ADD ECX,EAX
MOV dword ptr [EBP + 0xffffff38],EAX
ADC EBX,EDX
CMP byte ptr [EBP + 0xffffff2b],0x0
MOV dword ptr [EBP + 0xffffff3c],EDX
MOV dword ptr [EBP + 0xffffff30],ECX
MOV dword ptr [EBP + 0xffffff34],EBX
JZ 0x00077980
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x30],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff08]
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + 0xffffff40],EAX
CALL 0x000aa900
MOVZX EAX,byte ptr [ESI + 0x4]
ADD ESP,0x10
XOR EBX,EBX
AND EAX,0xf
CMP AL,0x3
JZ 0x00077a68
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff40]
PUSH dword ptr [EBP + 0xffffff0c]
MOV dword ptr [EBP + -0x30],0x0
CALL 0x000aafe0
MOV EAX,dword ptr [EBP + 0xffffff38]
MOV EDX,dword ptr [EBP + 0xffffff3c]
ADD ESP,0x10
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff40]
PUSH dword ptr [EBP + 0xffffff04]
MOV dword ptr [EBP + -0x30],EAX
MOV dword ptr [EBP + -0x2c],EDX
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EDX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [EBP + -0x24],EDX
CALL 0x000ab1b0
MOV EAX,dword ptr [EBP + 0xc]
ADD ESP,0x10
MOV EDI,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EAX]
TEST EDI,EDI
JNZ 0x00078627
MOV EDI,dword ptr [EBP + 0xffffff10]
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 0x00078140
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 + -0x68]
MOV dword ptr [EBP + -0x68],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff00]
CALL 0x000ab360
ADD ESP,0x10
TEST BL,BL
JNZ 0x00077a90
ADD dword ptr [EBP + 0xffffff54],0x1
MOV EAX,dword ptr [EBP + 0xffffff54]
ADD dword ptr [EBP + 0xc],0x18
CMP dword ptr [EBP + 0x10],EAX
JZ 0x00078208
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff2c],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EAX + 0x14]
MOV EBX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0xffffff4c],EDX
MOV dword ptr [EBP + 0xffffff48],EAX
CMP EBX,dword ptr [EBP + 0x14]
JNC 0x00077df0
MOV EAX,dword ptr [EBP + 0x18]
TEST EAX,EAX
JZ 0x00078588
MOV EDI,dword ptr [EBP + 0x18]
LEA EAX,[EBX + EBX*0x2]
LEA ESI,[EDI + EAX*0x8]
MOVZX EAX,word ptr [ESI + 0x6]
MOV dword ptr [EBP + 0xffffff50],EAX
CMP EAX,0xfeff
JA 0x00077848
MOV EAX,dword ptr [ESI + 0x8]
MOV ECX,dword ptr [EBP + 0xffffff48]
MOV EDX,dword ptr [ESI + 0xc]
MOV EBX,dword ptr [EBP + 0xffffff4c]
ADD ECX,EAX
MOV dword ptr [EBP + 0xffffff38],EAX
ADC EBX,EDX
CMP byte ptr [EBP + 0xffffff2b],0x0
MOV dword ptr [EBP + 0xffffff3c],EDX
MOV dword ptr [EBP + 0xffffff30],ECX
MOV dword ptr [EBP + 0xffffff34],EBX
JZ 0x00077a90
MOV EAX,dword ptr [EBP + 0xffffff44]
SUB ESP,0x8
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV dword ptr [EBP + -0x2c],EAX
LEA EAX,[EBP + -0x30]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff08]
MOV dword ptr [EBP + 0xffffff40],EAX
CALL 0x000aa900
MOVZX EAX,byte ptr [ESI + 0x4]
ADD ESP,0x10
MOV EBX,0x1
AND EAX,0xf
CMP AL,0x3
JNZ 0x000778c8
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff40]
PUSH dword ptr [EBP + 0xffffff0c]
MOV dword ptr [EBP + -0x30],0xffffffff
CALL 0x000aafe0
JMP 0x000778e3
CMP byte ptr [EBP + 0xffffff2a],0x0
JZ 0x00077ae0
MOVZX EAX,byte ptr [ESI + 0x4]
AND EAX,0xf
CMP AL,0x1
JZ 0x00077ae0
MOV EAX,dword ptr [EBP + 0xffffff44]
MOV EAX,dword ptr [EAX + 0x150]
MOV dword ptr [EBP + 0xffffff48],EAX
AND EAX,0x3
CMP EAX,0x1
JZ 0x00077ae0
MOV EBX,dword ptr [EBP + 0xffffff2c]
CMP EBX,0x17
JA 0x00077d90
MOV EAX,0x843f84
BT EAX,EBX
JNC 0x00077d90
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + 0xffffff50]
CMP dword ptr [EBP + 0x8],EAX
JZ 0x00077980
MOV EAX,dword ptr [EBP + 0xffffff44]
MOV dword ptr [EBP + 0xffffff38],EAX
MOV EAX,dword ptr [EBP + 0xffffff20]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000785a9
CMP byte ptr [EAX + 0x18b1],0x0
JZ 0x00077980
MOV EAX,dword ptr [EBP + 0xffffff18]
MOV ESI,dword ptr [EBP + 0xffffff44]
MOV EDX,dword ptr [EAX + 0x158]
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x70],ESI
MOV dword ptr [EBP + -0x6c],EAX
MOV EAX,dword ptr [EBP + 0xffffff38]
LEA EBX,[EDX + 0x14]
MOV ECX,EBX
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,dword ptr [EDX + 0x18]
TEST EAX,EAX
JZ 0x00077ba0
MOV dword ptr [EBP + 0xffffff48],EDX
MOV EDI,dword ptr [EBP + 0x8]
JMP 0x00077b70
JNZ 0x00077b67
CMP EDI,dword ptr [EAX + 0x14]
JA 0x00077b75
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00077b7c
CMP ESI,dword ptr [EAX + 0x10]
JBE 0x00077b60
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00077b70
MOV EDX,dword ptr [EBP + 0xffffff48]
CMP ECX,EBX
JZ 0x00077ba0
MOV EAX,dword ptr [EBP + 0xffffff44]
CMP EAX,dword ptr [ECX + 0x10]
JC 0x00077ba0
JNZ 0x00077bca
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x8],EAX
JNC 0x00077bca
LEA ESI,[ESI]
NOP
SUB ESP,0xc
LEA EBX,[EBP + 0xffffff78]
LEA EAX,[EBP + -0x70]
ADD EDX,0x10
PUSH EBX
MOV dword ptr [EBP + 0xffffff78],EAX
LEA EAX,[EBP + 0xffffff5c]
CALL 0x00068840
MOV ECX,dword ptr [EBP + 0xffffff5c]
ADD ESP,0x10
SUB ESP,0x8
ADD ECX,0x18
LEA EAX,[EBP + -0x68]
PUSH 0x1
PUSH 0x0
PUSH dword ptr [EBP + 0xfffffef4]
PUSH EAX
PUSH ECX
PUSH dword ptr [EBP + 0xffffff14]
MOV dword ptr [EBP + 0xffffff74],ECX
CALL 0x000a8cd0
MOV EAX,dword ptr [EBP + 0xffffff20]
ADD ESP,0x1c
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x00078609
MOV EDX,dword ptr [EAX]
MOV EDI,dword ptr [EBP + 0xffffff18]
PUSH dword ptr [EBP + 0xffffff34]
PUSH dword ptr [EBP + 0xffffff30]
PUSH dword ptr [EBP + 0xffffff50]
PUSH dword ptr [EBP + 0xffffff38]
PUSH dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + 0xffffff44]
PUSH EDI
PUSH EAX
CALL dword ptr [EDX + 0x104]
MOV EAX,dword ptr [EBP + 0xffffff1c]
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00077980
SUB ESP,0xc
MOV ESI,dword ptr [EDI + 0x158]
MOV EBX,dword ptr [EBP + 0xffffff24]
LEA ECX,[EBP + -0x28]
PUSH EAX
LEA EDI,[EBP + -0x30]
MOV dword ptr [EBP + 0xffffff40],EDI
MOV EDI,EAX
MOV dword ptr [EBP + 0xffffff48],ECX
MOV dword ptr [EBP + -0x30],ECX
CALL 0x0002c330
ADD ESP,0x10
ADD EAX,EDI
PUSH 0x0
PUSH EAX
PUSH EDI
MOV EDI,dword ptr [EBP + 0xffffff40]
PUSH EDI
CALL 0x000a8880
ADD ESP,0xc
LEA EAX,[EBP + 0xffffff58]
ADD ESI,0x44
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x000aaaa0
MOV EDI,dword ptr [EBP + 0xffffff58]
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0xc
CMP EAX,dword ptr [EBP + 0xffffff48]
JZ 0x00077cc3
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH EAX
CALL 0x00248220
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff18]
MOV EDX,dword ptr [EAX + 0x158]
LEA EAX,[EDX + 0x48]
CMP EDI,EAX
JZ 0x00077980
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + 0xffffff44]
LEA EBX,[EDX + 0x14]
MOV ECX,EBX
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EDX + 0x18]
MOV dword ptr [EBP + -0x30],ESI
TEST EAX,EAX
JZ 0x00078190
MOV dword ptr [EBP + 0xffffff48],EDX
JMP 0x00077d1b
JNZ 0x00077d12
MOV EDX,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + 0x8],EDX
JA 0x00077d20
MOV ECX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x00077d27
CMP ESI,dword ptr [EAX + 0x10]
JBE 0x00077d08
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00077d1b
MOV EDX,dword ptr [EBP + 0xffffff48]
CMP ECX,EBX
JZ 0x00078190
MOV EAX,dword ptr [EBP + 0xffffff44]
CMP EAX,dword ptr [ECX + 0x10]
JC 0x00078190
JZ 0x0007817a
MOV EBX,dword ptr [EDI + 0x30]
LEA ESI,[ECX + 0x18]
LEA EDI,[EBP + 0xffffff70]
TEST EBX,EBX
JZ 0x00077980
NOP
SUB ESP,0x8
LEA EAX,[EBX + 0x4]
MOV dword ptr [EBP + 0xffffff70],ESI
PUSH 0x1
PUSH 0x0
PUSH EDI
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + 0xffffff14]
CALL 0x000a8cd0
MOV EBX,dword ptr [EBX]
ADD ESP,0x1c
TEST EBX,EBX
JNZ 0x00077d60
JMP 0x00077980
MOV EAX,dword ptr [EBP + 0xffffff18]
SUB ESP,0x8
LEA EDX,[EBP + 0xffffff68]
MOV EDI,dword ptr [EBP + 0xffffff44]
MOV EAX,dword ptr [EAX + 0x15c]
MOV dword ptr [EBP + -0x78],EDI
MOV dword ptr [EBP + 0xffffff48],EAX
MOVZX EAX,word ptr [ESI + 0x6]
PUSH 0x1
MOV dword ptr [EBP + -0x74],EAX
MOV EAX,dword ptr [EBP + 0xffffff48]
PUSH 0x0
ADD EAX,0x34
PUSH EDX
LEA EDX,[EBP + -0x78]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff14]
MOV dword ptr [EBP + 0xffffff68],EAX
CALL 0x000a8d90
ADD ESP,0x1c
JMP 0x00077ae0
MOV EAX,dword ptr [EBP + 0xffffff44]
MOV EAX,dword ptr [EAX + 0xb0]
CMP EBX,EAX
JC 0x000780d0
SUB EBX,EAX
MOV EAX,dword ptr [EBP + 0xffffff44]
MOV EDX,dword ptr [EAX + 0xbc]
MOV EAX,dword ptr [EAX + 0xc0]
MOV dword ptr [EBP + 0xffffff50],EAX
SUB EAX,EDX
SAR EAX,0x2
CMP EBX,EAX
JNC 0x000785e8
MOV EAX,dword ptr [EDX + EBX*0x4]
MOV dword ptr [EBP + -0x70],EAX
TEST EAX,EAX
JZ 0x000780d7
TEST byte ptr [EAX + 0x2a],0x10
JNZ 0x000780b0
TEST byte ptr [EAX + 0x2a],0x7
JNZ 0x00078028
MOV ECX,dword ptr [EAX + 0x30]
MOV ESI,dword ptr [EBP + 0xffffff48]
MOV EBX,dword ptr [EAX + 0x34]
MOV EDI,dword ptr [EBP + 0xffffff4c]
ADD ESI,ECX
MOV EDX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xfffffef8],ECX
ADC EDI,EBX
MOV dword ptr [EBP + 0xfffffefc],EBX
MOV dword ptr [EBP + 0xffffff38],EDX
MOV dword ptr [EBP + 0xffffff30],ESI
MOV dword ptr [EBP + 0xffffff34],EDI
TEST byte ptr [EDX + 0x2c],0x1
JNZ 0x00078100
MOVZX EBX,byte ptr [EAX + 0x2b]
MOVZX EDX,byte ptr [EAX + 0x28]
MOV EDI,dword ptr [EAX + 0xc]
SHR BL,0x5
AND EDX,0xf
AND EBX,0x1
MOV dword ptr [EBP + 0xffffff50],EDI
CMP DL,0x2
JNZ 0x00077ec0
CMP byte ptr [EBP + 0xffffff2a],0x0
JNZ 0x00078270
LEA ESI,[ESI]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EBP + 0xffffff24]
MOV ECX,0x8
LEA ESI,[ESI + 0xffee30cf]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00077ff0
ADD EAX,0x8
MOV dword ptr [EBP + 0xffffff1c],EAX
CMP byte ptr [EBP + 0xffffff2b],0x0
JZ 0x00077fdc
TEST BL,BL
JNZ 0x00078120
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 + 0xffffff08]
MOV dword ptr [EBP + 0xffffff40],EAX
CALL 0x000aa900
MOV ESI,dword ptr [EBP + 0xffffff0c]
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x4]
CMP EAX,dword ptr [ESI + 0x8]
JZ 0x000781e8
MOV EDX,dword ptr [EBP + -0x70]
ADD EAX,0x4
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBP + 0xfffffef8]
MOV EDX,dword ptr [EBP + 0xfffffefc]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff40]
PUSH dword ptr [EBP + 0xffffff04]
MOV dword ptr [EBP + -0x30],EAX
MOV dword ptr [EBP + -0x2c],EDX
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV EDX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [EBP + -0x24],EDX
CALL 0x000ab1b0
MOV EAX,dword ptr [EBP + 0xc]
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EAX]
TEST ECX,ECX
JNZ 0x000785c7
MOV ECX,dword ptr [EBP + 0xffffff10]
MOV dword ptr [EBP + -0x30],EDX
MOV dword ptr [EBP + -0x2c],0x0
MOV EAX,dword ptr [ECX + 0x4]
CMP EAX,dword ptr [ECX + 0x8]
JZ 0x000781c8
MOV dword ptr [EAX],EDX
ADD EAX,0x8
MOV dword ptr [EAX + -0x4],0x0
MOV dword ptr [ECX + 0x4],EAX
SUB ESP,0x8
LEA EAX,[EBP + -0x68]
MOV dword ptr [EBP + -0x68],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xffffff00]
CALL 0x000ab360
ADD ESP,0x10
TEST BL,BL
JNZ 0x00077afb
JMP 0x00077980
MOV EDI,dword ptr [EBP + 0xffffff24]
MOV ECX,0x7
LEA ESI,[EDI + 0xffee30d8]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
ADD EAX,0x7
TEST DL,DL
CMOVNZ EAX,dword ptr [EBP + 0xffffff1c]
MOV dword ptr [EBP + 0xffffff1c],EAX
JMP 0x00077eee
MOV ECX,dword ptr [EAX + 0x30]
MOV ESI,dword ptr [EBP + 0xffffff48]
MOV dword ptr [EBP + 0xffffff50],0x0
MOV EBX,dword ptr [EAX + 0x34]
MOV EDI,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + 0xffffff38],0x0
ADD ESI,ECX
MOV dword ptr [EBP + 0xfffffef8],ECX
ADC EDI,EBX
MOV dword ptr [EBP + 0xfffffefc],EBX
XOR EBX,EBX
MOV dword ptr [EBP + 0xffffff30],ESI
MOV dword ptr [EBP + 0xffffff34],EDI
JMP 0x00077ec0
MOV EAX,dword ptr [EBP + 0xffffff44]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JZ 0x00078160
SUB ESP,0x4
PUSH EBX
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH dword ptr [EBP + 0xffffff44]
PUSH EAX
CALL 0x00121c60
MOV dword ptr [EBP + 0xffffff50],EAX
ADD ESP,0x10
JMP 0x000779f0
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff18]
CALL 0x001e6f30
ADD ESP,0x10
MOV dword ptr [EBP + -0x70],EAX
JMP 0x00077e43
MOV dword ptr [EBP + -0x70],0x0
MOV EBX,dword ptr [EBP + 0xffffff24]
SUB ESP,0x4
LEA EAX,[EBX + 0xffee1d4c]
PUSH EAX
LEA EAX,[EBX + 0xffee30bf]
PUSH 0x11c
PUSH EAX
CALL 0x000da200
MOV dword ptr [EBP + 0xffffff50],0x0
XOR EBX,EBX
MOV dword ptr [EBP + 0xffffff38],0x0
JMP 0x00077ec0
MOV EAX,dword ptr [EBP + 0xffffff38]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV dword ptr [EBP + -0x2c],EAX
JMP 0x00077f11
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff40]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff10]
CALL 0x000aa950
ADD ESP,0x10
JMP 0x0007795c
MOV EDI,dword ptr [EBP + 0xffffff44]
SUB ESP,0xc
MOV EAX,dword ptr [EDI]
PUSH EDI
CALL dword ptr [EAX + 0x6c]
ADD ESP,0x10
MOV dword ptr [EDI + 0x30],EAX
JMP 0x00078089
MOV EAX,dword ptr [ECX + 0x14]
CMP dword ptr [EBP + 0x8],EAX
JNC 0x00077d4a
LEA ESI,[ESI]
LEA ESI,[ESI]
SUB ESP,0xc
LEA EBX,[EBP + 0xffffff7c]
MOV EAX,dword ptr [EBP + 0xffffff40]
ADD EDX,0x10
PUSH EBX
MOV dword ptr [EBP + 0xffffff7c],EAX
LEA EAX,[EBP + 0xffffff5c]
CALL 0x00068840
ADD ESP,0x10
MOV ECX,dword ptr [EBP + 0xffffff5c]
JMP 0x00077d4a
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff40]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff10]
CALL 0x000aa950
ADD ESP,0x10
JMP 0x00077fc0
SUB ESP,0x4
LEA EDX,[EBP + -0x70]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff0c]
CALL 0x000a82c0
ADD ESP,0x10
JMP 0x00077f4a
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + 0xfffffef0]
JZ 0x00078225
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH EAX
CALL 0x00248220
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x60]
TEST EDX,EDX
JZ 0x00078261
MOV EAX,dword ptr [EBP + -0x5c]
TEST EAX,EAX
JZ 0x00078261
MOV ESI,dword ptr [EBP + 0xffffff24]
SUB ESP,0xc
LEA EAX,[ESI + 0xffee35f4]
MOV EBX,ESI
PUSH EAX
CALL 0x0002c440
MOV dword ptr [ESP],EAX
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + -0x54]
PUSH dword ptr [EBP + -0x58]
PUSH dword ptr [EBP + -0x5c]
CALL 0x000d1a30
ADD ESP,0x20
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST BL,BL
JZ 0x000782b0
MOV EDI,dword ptr [EBP + 0xffffff44]
MOV EDI,dword ptr [EDI + 0x150]
MOV EDX,EDI
MOV dword ptr [EBP + 0xffffff40],EDI
AND EDX,0x3
CMP EDX,0x1
JZ 0x00077ec0
MOV EDI,dword ptr [EBP + 0xffffff2c]
CMP EDI,0x17
JA 0x000782b0
MOV EDX,0x843f84
BT EDX,EDI
JC 0x00077ec0
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xffffff18]
SUB ESP,0x8
LEA EDX,[EBP + 0xffffff6c]
MOV EAX,dword ptr [EAX + 0x15c]
PUSH 0x1
PUSH 0x0
MOV dword ptr [EBP + 0xffffff40],EAX
MOV EAX,dword ptr [EBP + 0xffffff38]
PUSH EDX
LEA EDX,[EBP + -0x80]
MOV dword ptr [EBP + -0x80],EAX
MOV EAX,dword ptr [EBP + 0xffffff50]
PUSH EDX
MOV dword ptr [EBP + -0x7c],EAX
MOV EAX,dword ptr [EBP + 0xffffff40]
ADD EAX,0x34
PUSH EAX
PUSH dword ptr [EBP + 0xffffff14]
MOV dword ptr [EBP + 0xffffff6c],EAX
CALL 0x000a8d90
ADD ESP,0x1c
MOV EAX,dword ptr [EBP + -0x70]
JMP 0x00077ec0
MOV ESI,dword ptr [EBP + 0xffffff54]
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x48]
ADD ESP,0x10
TEST AL,AL
JZ 0x00077800
MOV EDX,dword ptr [ESI]
MOV EDI,dword ptr [EBP + 0xffffff24]
MOV EAX,dword ptr [EBP + -0x48]
MOV ECX,dword ptr [EDX + 0x8]
LEA EBX,[EDI + 0xffc92a80]
CMP ECX,EBX
JNZ 0x00078560
MOV EDX,dword ptr [EDX + 0x4c]
LEA ECX,[EDI + 0xffc92b40]
MOV EBX,EDI
CMP EDX,ECX
JNZ 0x0007857a
LEA ESI,[EDI + 0xffee3c62]
MOV ECX,0xc
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00077800
MOV ECX,0x11
LEA ESI,[EBX + 0xffee3c6f]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00077800
MOV ECX,0xc
LEA ESI,[EBX + 0xffee3c81]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00077800
MOV ECX,0x11
LEA ESI,[EBX + 0xffee3c8e]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00077800
MOV EDI,EAX
MOV ECX,0x9
LEA ESI,[EBX + 0xffee3ca0]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
SETNZ byte ptr [EBP + 0xffffff2a]
JMP 0x00077807
MOV ESI,dword ptr [EBP + -0x48]
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + 0xffffff48],EAX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,0xffffffff
TEST ESI,ESI
JZ 0x0007841c
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH ESI
CALL 0x0002c330
ADD ESP,0x10
ADD EAX,ESI
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + -0x30]
PUSH ESI
PUSH EAX
MOV dword ptr [EBP + 0xffffff40],EAX
CALL 0x000a8880
MOV EAX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + 0xffffff24]
MOV ECX,0x5
ADD ESP,0x10
LEA ESI,[EBX + 0xffee2fb0]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00078471
MOV ECX,0xf
LEA ESI,[EBX + 0xffee30af]
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x0007851e
CMP EAX,dword ptr [EBP + 0xffffff48]
JNZ 0x00078655
MOV EAX,dword ptr [EBP + 0xffffff44]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff40]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0xffffff18]
MOV EAX,dword ptr [EAX + 0x15c]
MOV dword ptr [EBP + 0xffffff48],EAX
ADD EAX,0x54
PUSH EAX
CALL 0x000acc50
LEA EDI,[EAX + 0xc]
LEA ESI,[EAX + 0x18]
MOV dword ptr [EBP + 0xffffff08],EAX
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff0c],EDI
LEA EDI,[EAX + 0x24]
ADD EAX,0x30
MOV dword ptr [EBP + 0xffffff00],EAX
MOV EAX,dword ptr [EBP + 0xffffff20]
MOV dword ptr [EBP + 0xffffff04],ESI
MOV dword ptr [EBP + 0xffffff10],EDI
MOV EAX,dword ptr [EAX]
MOV byte ptr [EBP + 0xffffff2b],0x1
JMP 0x000777e8
LEA EAX,[EBP + -0x40]
LEA EDX,[EBP + -0x48]
PUSH 0x0
MOV dword ptr [EBP + 0xfffffef0],EAX
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EBP + 0xffffff24]
LEA EAX,[EAX + 0xffefd1b6]
PUSH EAX
PUSH EAX
PUSH EDX
CALL 0x000a8880
ADD ESP,0x10
JMP 0x0007778e
CMP EAX,dword ptr [EBP + 0xffffff48]
JZ 0x00078648
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH EAX
CALL 0x00248220
MOV EAX,dword ptr [EBP + 0xffffff20]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
JMP 0x000777af
SUB ESP,0x4
LEA EDX,[EBP + -0x48]
PUSH dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + 0xffffff44]
PUSH EDX
CALL EAX
JMP 0x00077782
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EBP + 0xffffff54]
CALL ECX
MOV byte ptr [EBP + 0xffffff2a],AL
ADD ESP,0x10
JMP 0x00077807
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EBP + 0xffffff54]
CALL EDX
JMP 0x0007856c
MOV EBX,dword ptr [EBP + 0xffffff24]
SUB ESP,0x4
LEA EAX,[EBX + 0xffee1d4c]
PUSH EAX
LEA EAX,[EBX + 0xffee30bf]
PUSH 0xea
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + 0xffffff24]
SUB ESP,0x4
LEA EAX,[EBX + 0xffee23a8]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + 0xffffff24]
SUB ESP,0x4
LEA EAX,[EBX + 0xffee21c4]
PUSH EAX
LEA EAX,[EBX + 0xffee33bc]
PUSH 0xc0
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + 0xffffff24]
SUB ESP,0x4
LEA EAX,[EBX + 0xffee2324]
PUSH EAX
LEA EAX,[EBX + 0xffee2e48]
PUSH 0x8ad
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + 0xffffff24]
SUB ESP,0x4
LEA EAX,[EBX + 0xffee2058]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x73
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + 0xffffff24]
SUB ESP,0x4
LEA EAX,[EBX + 0xffee21c4]
PUSH EAX
LEA EAX,[EBX + 0xffee33bc]
PUSH 0xc0
PUSH EAX
CALL 0x000da200
MOV EAX,dword ptr [EBP + 0xffffff20]
MOV EAX,dword ptr [EAX]
JMP 0x000777af
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH EAX
CALL 0x00248220
ADD ESP,0x10
JMP 0x0007847d
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH ECX
LEA EAX,[EBX + 0xffee23a8]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
LEA EAX,[EDI + 0xffee23a8]
PUSH ESI
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + 0xffffff24]
PUSH EAX
LEA EAX,[EBX + 0xffee23a8]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
(translation_unit "void FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)\n\n{\n  byte *****pppppbVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  int *piVar4;\n  int iVar5;\n  code *pcVar6;\n  byte ***pppbVar7;\n  byte *****pppppbVar8;\n  char cVar9;\n  size_t sVar10;\n  byte ****ppppbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte *****extraout_ECX;\n  undefined4 extraout_ECX_00;\n  byte *****pppppbVar14;\n  byte *****pppppbVar15;\n  int iVar16;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  int unaff_EDI;\n  byte ****ppppbVar22;\n  byte *****pppppbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  undefined1 auStack_11c [8];\n  byte *local_114;\n  byte ****local_110;\n  byte ***local_10c;\n  byte ***local_108;\n  int local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  int local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  byte ***local_e8;\n  byte *local_e4;\n  int local_e0;\n  char local_da;\n  char local_d9;\n  uint local_d8;\n  byte *local_d4;\n  int local_d0;\n  byte ****local_cc;\n  int local_c8;\n  byte ****local_c4;\n  byte ****local_c0;\n  byte ****local_bc;\n  int local_b8;\n  byte ***local_b4;\n  int *local_b0;\n  byte ****local_ac;\n  byte ****local_a8;\n  undefined1 local_a4 [8];\n  byte ****local_9c;\n  byte ****local_98;\n  byte ****local_94;\n  byte ****local_90;\n  byte ****local_8c;\n  byte ****local_88;\n  byte ****local_84;\n  byte ***local_80;\n  byte ****local_7c;\n  uint local_78;\n  byte ****local_74;\n  byte ***local_70;\n  byte ****local_6c;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  byte ****local_34;\n  byte ***local_30;\n  byte ****local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  uVar28 = FUN_000b484e();\n  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);\n  local_ec = (int)uVar28;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */\n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = (byte ****)extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */\n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }\n  pbVar21 = local_4c[0];\n  iVar16 = *(int *)local_e4;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  piVar4 = local_b0;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */\n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }\n  local_da = '\0';\nLAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }\n  if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }\n  if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }\n  return;\n}\n\n" (function_definition "void FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)\n\n{\n  byte *****pppppbVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  int *piVar4;\n  int iVar5;\n  code *pcVar6;\n  byte ***pppbVar7;\n  byte *****pppppbVar8;\n  char cVar9;\n  size_t sVar10;\n  byte ****ppppbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte *****extraout_ECX;\n  undefined4 extraout_ECX_00;\n  byte *****pppppbVar14;\n  byte *****pppppbVar15;\n  int iVar16;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  int unaff_EDI;\n  byte ****ppppbVar22;\n  byte *****pppppbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  undefined1 auStack_11c [8];\n  byte *local_114;\n  byte ****local_110;\n  byte ***local_10c;\n  byte ***local_108;\n  int local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  int local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  byte ***local_e8;\n  byte *local_e4;\n  int local_e0;\n  char local_da;\n  char local_d9;\n  uint local_d8;\n  byte *local_d4;\n  int local_d0;\n  byte ****local_cc;\n  int local_c8;\n  byte ****local_c4;\n  byte ****local_c0;\n  byte ****local_bc;\n  int local_b8;\n  byte ***local_b4;\n  int *local_b0;\n  byte ****local_ac;\n  byte ****local_a8;\n  undefined1 local_a4 [8];\n  byte ****local_9c;\n  byte ****local_98;\n  byte ****local_94;\n  byte ****local_90;\n  byte ****local_8c;\n  byte ****local_88;\n  byte ****local_84;\n  byte ***local_80;\n  byte ****local_7c;\n  uint local_78;\n  byte ****local_74;\n  byte ***local_70;\n  byte ****local_6c;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  byte ****local_34;\n  byte ***local_30;\n  byte ****local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  uVar28 = FUN_000b484e();\n  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);\n  local_ec = (int)uVar28;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */\n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = (byte ****)extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */\n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }\n  pbVar21 = local_4c[0];\n  iVar16 = *(int *)local_e4;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  piVar4 = local_b0;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */\n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }\n  local_da = '\0';\nLAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }\n  if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }\n  if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)" identifier (parameter_list "(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)" ( (parameter_declaration "byte ****param_1" type_identifier (pointer_declarator "****param_1" * (pointer_declarator "***param_1" * (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier))))) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte ****param_4" type_identifier (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier))))) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte *****pppppbVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  int *piVar4;\n  int iVar5;\n  code *pcVar6;\n  byte ***pppbVar7;\n  byte *****pppppbVar8;\n  char cVar9;\n  size_t sVar10;\n  byte ****ppppbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte *****extraout_ECX;\n  undefined4 extraout_ECX_00;\n  byte *****pppppbVar14;\n  byte *****pppppbVar15;\n  int iVar16;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  int unaff_EDI;\n  byte ****ppppbVar22;\n  byte *****pppppbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  undefined1 auStack_11c [8];\n  byte *local_114;\n  byte ****local_110;\n  byte ***local_10c;\n  byte ***local_108;\n  int local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  int local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  byte ***local_e8;\n  byte *local_e4;\n  int local_e0;\n  char local_da;\n  char local_d9;\n  uint local_d8;\n  byte *local_d4;\n  int local_d0;\n  byte ****local_cc;\n  int local_c8;\n  byte ****local_c4;\n  byte ****local_c0;\n  byte ****local_bc;\n  int local_b8;\n  byte ***local_b4;\n  int *local_b0;\n  byte ****local_ac;\n  byte ****local_a8;\n  undefined1 local_a4 [8];\n  byte ****local_9c;\n  byte ****local_98;\n  byte ****local_94;\n  byte ****local_90;\n  byte ****local_8c;\n  byte ****local_88;\n  byte ****local_84;\n  byte ***local_80;\n  byte ****local_7c;\n  uint local_78;\n  byte ****local_74;\n  byte ***local_70;\n  byte ****local_6c;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  byte ****local_34;\n  byte ***local_30;\n  byte ****local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  uVar28 = FUN_000b484e();\n  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);\n  local_ec = (int)uVar28;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */\n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = (byte ****)extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */\n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }\n  pbVar21 = local_4c[0];\n  iVar16 = *(int *)local_e4;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  piVar4 = local_b0;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */\n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }\n  local_da = '\0';\nLAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }\n  if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }\n  if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }\n  return;\n}" { (declaration "byte *****pppppbVar1;" type_identifier (pointer_declarator "*****pppppbVar1" * (pointer_declarator "****pppppbVar1" * (pointer_declarator "***pppppbVar1" * (pointer_declarator "**pppppbVar1" * (pointer_declarator "*pppppbVar1" * identifier))))) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte ****ppppbVar3;" type_identifier (pointer_declarator "****ppppbVar3" * (pointer_declarator "***ppppbVar3" * (pointer_declarator "**ppppbVar3" * (pointer_declarator "*ppppbVar3" * identifier)))) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte ***pppbVar7;" type_identifier (pointer_declarator "***pppbVar7" * (pointer_declarator "**pppbVar7" * (pointer_declarator "*pppbVar7" * identifier))) ;) (declaration "byte *****pppppbVar8;" type_identifier (pointer_declarator "*****pppppbVar8" * (pointer_declarator "****pppppbVar8" * (pointer_declarator "***pppppbVar8" * (pointer_declarator "**pppppbVar8" * (pointer_declarator "*pppppbVar8" * identifier))))) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "byte ****ppppbVar11;" type_identifier (pointer_declarator "****ppppbVar11" * (pointer_declarator "***ppppbVar11" * (pointer_declarator "**ppppbVar11" * (pointer_declarator "*ppppbVar11" * identifier)))) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *****extraout_ECX;" type_identifier (pointer_declarator "*****extraout_ECX" * (pointer_declarator "****extraout_ECX" * (pointer_declarator "***extraout_ECX" * (pointer_declarator "**extraout_ECX" * (pointer_declarator "*extraout_ECX" * identifier))))) ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "byte *****pppppbVar14;" type_identifier (pointer_declarator "*****pppppbVar14" * (pointer_declarator "****pppppbVar14" * (pointer_declarator "***pppppbVar14" * (pointer_declarator "**pppppbVar14" * (pointer_declarator "*pppppbVar14" * identifier))))) ;) (declaration "byte *****pppppbVar15;" type_identifier (pointer_declarator "*****pppppbVar15" * (pointer_declarator "****pppppbVar15" * (pointer_declarator "***pppppbVar15" * (pointer_declarator "**pppppbVar15" * (pointer_declarator "*pppppbVar15" * identifier))))) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_02;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "byte ****ppppbVar22;" type_identifier (pointer_declarator "****ppppbVar22" * (pointer_declarator "***ppppbVar22" * (pointer_declarator "**ppppbVar22" * (pointer_declarator "*ppppbVar22" * identifier)))) ;) (declaration "byte *****pppppbVar23;" type_identifier (pointer_declarator "*****pppppbVar23" * (pointer_declarator "****pppppbVar23" * (pointer_declarator "***pppppbVar23" * (pointer_declarator "**pppppbVar23" * (pointer_declarator "*pppppbVar23" * identifier))))) ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "undefined8 uVar28;" type_identifier identifier ;) (declaration "undefined1 auStack_11c [8];" type_identifier (array_declarator "auStack_11c [8]" identifier [ number_literal ]) ;) (declaration "byte *local_114;" type_identifier (pointer_declarator "*local_114" * identifier) ;) (declaration "byte ****local_110;" type_identifier (pointer_declarator "****local_110" * (pointer_declarator "***local_110" * (pointer_declarator "**local_110" * (pointer_declarator "*local_110" * identifier)))) ;) (declaration "byte ***local_10c;" type_identifier (pointer_declarator "***local_10c" * (pointer_declarator "**local_10c" * (pointer_declarator "*local_10c" * identifier))) ;) (declaration "byte ***local_108;" type_identifier (pointer_declarator "***local_108" * (pointer_declarator "**local_108" * (pointer_declarator "*local_108" * identifier))) ;) (declaration "int local_104;" primitive_type identifier ;) (declaration "int local_100;" primitive_type identifier ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "int local_f8;" primitive_type identifier ;) (declaration "int local_f4;" primitive_type identifier ;) (declaration "undefined1 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "byte ***local_e8;" type_identifier (pointer_declarator "***local_e8" * (pointer_declarator "**local_e8" * (pointer_declarator "*local_e8" * identifier))) ;) (declaration "byte *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "char local_da;" primitive_type identifier ;) (declaration "char local_d9;" primitive_type identifier ;) (declaration "uint local_d8;" type_identifier identifier ;) (declaration "byte *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "byte ****local_cc;" type_identifier (pointer_declarator "****local_cc" * (pointer_declarator "***local_cc" * (pointer_declarator "**local_cc" * (pointer_declarator "*local_cc" * identifier)))) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte ****local_c4;" type_identifier (pointer_declarator "****local_c4" * (pointer_declarator "***local_c4" * (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)))) ;) (declaration "byte ****local_c0;" type_identifier (pointer_declarator "****local_c0" * (pointer_declarator "***local_c0" * (pointer_declarator "**local_c0" * (pointer_declarator "*local_c0" * identifier)))) ;) (declaration "byte ****local_bc;" type_identifier (pointer_declarator "****local_bc" * (pointer_declarator "***local_bc" * (pointer_declarator "**local_bc" * (pointer_declarator "*local_bc" * identifier)))) ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "byte ***local_b4;" type_identifier (pointer_declarator "***local_b4" * (pointer_declarator "**local_b4" * (pointer_declarator "*local_b4" * identifier))) ;) (declaration "int *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "byte ****local_ac;" type_identifier (pointer_declarator "****local_ac" * (pointer_declarator "***local_ac" * (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier)))) ;) (declaration "byte ****local_a8;" type_identifier (pointer_declarator "****local_a8" * (pointer_declarator "***local_a8" * (pointer_declarator "**local_a8" * (pointer_declarator "*local_a8" * identifier)))) ;) (declaration "undefined1 local_a4 [8];" type_identifier (array_declarator "local_a4 [8]" identifier [ number_literal ]) ;) (declaration "byte ****local_9c;" type_identifier (pointer_declarator "****local_9c" * (pointer_declarator "***local_9c" * (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)))) ;) (declaration "byte ****local_98;" type_identifier (pointer_declarator "****local_98" * (pointer_declarator "***local_98" * (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)))) ;) (declaration "byte ****local_94;" type_identifier (pointer_declarator "****local_94" * (pointer_declarator "***local_94" * (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)))) ;) (declaration "byte ****local_90;" type_identifier (pointer_declarator "****local_90" * (pointer_declarator "***local_90" * (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)))) ;) (declaration "byte ****local_8c;" type_identifier (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)))) ;) (declaration "byte ****local_88;" type_identifier (pointer_declarator "****local_88" * (pointer_declarator "***local_88" * (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier)))) ;) (declaration "byte ****local_84;" type_identifier (pointer_declarator "****local_84" * (pointer_declarator "***local_84" * (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)))) ;) (declaration "byte ***local_80;" type_identifier (pointer_declarator "***local_80" * (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier))) ;) (declaration "byte ****local_7c;" type_identifier (pointer_declarator "****local_7c" * (pointer_declarator "***local_7c" * (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier)))) ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "byte ****local_74;" type_identifier (pointer_declarator "****local_74" * (pointer_declarator "***local_74" * (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)))) ;) (declaration "byte ***local_70;" type_identifier (pointer_declarator "***local_70" * (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier))) ;) (declaration "byte ****local_6c;" type_identifier (pointer_declarator "****local_6c" * (pointer_declarator "***local_6c" * (pointer_declarator "**local_6c" * (pointer_declarator "*local_6c" * identifier)))) ;) (declaration "byte ***local_68;" type_identifier (pointer_declarator "***local_68" * (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier))) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined1 local_50;" type_identifier 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 "byte ****local_34;" type_identifier (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)))) ;) (declaration "byte ***local_30;" type_identifier (pointer_declarator "***local_30" * (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier))) ;) (declaration "byte ****local_2c;" type_identifier (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)))) ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = FUN_000b484e();" (assignment_expression "uVar28 = FUN_000b484e()" identifier = (call_expression "FUN_000b484e()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_b0 = (int *)((ulonglong)uVar28 >> 0x20);" (assignment_expression "local_b0 = (int *)((ulonglong)uVar28 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_ec = (int)uVar28;" (assignment_expression "local_ec = (int)uVar28" identifier = (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_e0 = unaff_EDI + 0x39c927;" (assignment_expression "local_e0 = unaff_EDI + 0x39c927" identifier = (binary_expression "unaff_EDI + 0x39c927" identifier + number_literal)) ;) (expression_statement "local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;" (assignment_expression "local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6" identifier = (binary_expression "BYTE_ARRAY_0039ce09 + unaff_EDI + 6" (binary_expression "BYTE_ARRAY_0039ce09 + unaff_EDI" identifier + identifier) + number_literal)) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */\n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }" if (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) == 0" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */\n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }" { comment comment (expression_statement "FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);" (call_expression "FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI)" identifier (argument_list "(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI)" ( (binary_expression "unaff_EDI + 0x26ab94" identifier + number_literal) , number_literal , (binary_expression "&UNK_0027eccf + unaff_EDI" (pointer_expression "&UNK_0027eccf" & identifier) + identifier) ))) ;) })) (expression_statement "local_c0 = (byte ****)extraout_ECX;" (assignment_expression "local_c0 = (byte ****)extraout_ECX" identifier = (cast_expression "(byte ****)extraout_ECX" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (if_statement "if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */\n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) + 0x5934)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) + 0x5934" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */\n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }" { (expression_statement "local_114 = local_44;" (assignment_expression "local_114 = local_44" identifier = identifier) ;) (expression_statement "local_4c[0] = local_114;" (assignment_expression "local_4c[0] = local_114" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) comment (expression_statement "FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);" (call_expression "FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add)" identifier (argument_list "(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add)" ( identifier , (binary_expression "unaff_EDI + 0x299add" identifier + number_literal) , (binary_expression "unaff_EDI + 0x299add" identifier + number_literal) ))) ;) (expression_statement "puVar19 = auStack_11c;" (assignment_expression "puVar19 = auStack_11c" identifier = identifier) ;) (expression_statement "uVar12 = extraout_ECX_01;" (assignment_expression "uVar12 = extraout_ECX_01" identifier = identifier) ;) }) (else_clause "else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" else (compound_statement "{\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" { (if_statement "if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" if (parenthesized_expression "((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57))" ( (binary_expression "(*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)" (subscript_expression "(*extraout_ECX)[0x10]" (parenthesized_expression "(*extraout_ECX)" ( (pointer_expression "*extraout_ECX" * identifier) )) [ number_literal ]) == (cast_expression "(byte ***)(unaff_EDI + 0x39d57)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(unaff_EDI + 0x39d57)" ( (binary_expression "unaff_EDI + 0x39d57" identifier + number_literal) )))) )) (compound_statement "{\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }" { comment (expression_statement "FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);" (call_expression "FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1)" identifier (argument_list "(local_4c,extraout_ECX + 0x24,param_1)" ( identifier , (binary_expression "extraout_ECX + 0x24" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar12 = extraout_ECX_00;" (assignment_expression "uVar12 = extraout_ECX_00" identifier = identifier) ;) }) (else_clause "else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" else (compound_statement "{\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" { (expression_statement "(*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);" (call_expression "(*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1)" (parenthesized_expression "(*(code *)(*extraout_ECX)[0x10])" ( (pointer_expression "*(code *)(*extraout_ECX)[0x10]" * (cast_expression "(code *)(*extraout_ECX)[0x10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*extraout_ECX)[0x10]" (parenthesized_expression "(*extraout_ECX)" ( (pointer_expression "*extraout_ECX" * identifier) )) [ number_literal ]))) )) (argument_list "(local_4c,extraout_ECX,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = extraout_ECX_02;" (assignment_expression "uVar12 = extraout_ECX_02" identifier = identifier) ;) }))) (expression_statement "local_114 = local_44;" (assignment_expression "local_114 = local_44" identifier = identifier) ;) (expression_statement "puVar19 = &stack0xfffffee0;" (assignment_expression "puVar19 = &stack0xfffffee0" identifier = (pointer_expression "&stack0xfffffee0" & identifier)) ;) }))) (expression_statement "pbVar21 = local_4c[0];" (assignment_expression "pbVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }" if (parenthesized_expression "(*(int *)(iVar16 + 8) == 0)" ( (binary_expression "*(int *)(iVar16 + 8) == 0" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }" { (expression_statement "*(undefined4 *)(puVar19 + -4) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -4)" * (cast_expression "(undefined4 *)(puVar19 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -4)" ( (binary_expression "puVar19 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar19 + -8)" * (cast_expression "(int *)(puVar19 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar19 + -0xc)" * (cast_expression "(undefined4 *)(puVar19 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar19 + -0x10)" * (cast_expression "(int *)(puVar19 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78688;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78688" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar16 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar16 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar16 + 8) + 0x5934" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }" { (labeled_statement "LAB_000777af:\n    local_d9 = '\0';" statement_identifier : (expression_statement "local_d9 = '\0';" (assignment_expression "local_d9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" identifier = number_literal) ;) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" else (compound_statement "{\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" { (expression_statement "local_bc = (byte ****)&local_2c;" (assignment_expression "local_bc = (byte ****)&local_2c" identifier = (cast_expression "(byte ****)&local_2c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_34 = local_bc;" (assignment_expression "local_34 = local_bc" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (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 **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\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 **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }" { (expression_statement "*(byte **)(puVar19 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0x10)" * (cast_expression "(byte **)(puVar19 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78417;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78417" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar10 = strlen(*(char **)(puVar19 + -0x10));" (assignment_expression "sVar10 = strlen(*(char **)(puVar19 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar19 + -0x10))" identifier (argument_list "(*(char **)(puVar19 + -0x10))" ( (pointer_expression "*(char **)(puVar19 + -0x10)" * (cast_expression "(char **)(puVar19 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "pbVar13 = pbVar21 + sVar10;" (assignment_expression "pbVar13 = pbVar21 + sVar10" identifier = (binary_expression "pbVar21 + sVar10" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)(puVar19 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar19 + -4)" * (cast_expression "(undefined4 *)(puVar19 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -4)" ( (binary_expression "puVar19 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar19 + -8) = pbVar13;" (assignment_expression "*(byte **)(puVar19 + -8) = pbVar13" (pointer_expression "*(byte **)(puVar19 + -8)" * (cast_expression "(byte **)(puVar19 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "*(byte **)(puVar19 + -0xc) = pbVar21;" (assignment_expression "*(byte **)(puVar19 + -0xc) = pbVar21" (pointer_expression "*(byte **)(puVar19 + -0xc)" * (cast_expression "(byte **)(puVar19 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar19 + -0x10) = local_c4;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_c4" (pointer_expression "*(byte *****)(puVar19 + -0x10)" * (cast_expression "(byte *****)(puVar19 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7842f;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7842f" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" identifier = number_literal) ;) (expression_statement "bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;" (assignment_expression "bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10" identifier = (binary_expression "(undefined1 *)0xffffffef < puVar19 + -0x10" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar19 + -0x10" identifier + number_literal))) ;) (expression_statement "bVar26 = puVar19 == (undefined1 *)0x0;" (assignment_expression "bVar26 = puVar19 == (undefined1 *)0x0" identifier = (binary_expression "puVar19 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11d050);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11d050)" identifier = (cast_expression "(byte *)(local_e0 + -0x11d050)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11d050)" ( (binary_expression "local_e0 + -0x11d050" identifier + number_literal) )))) ;) (expression_statement "pppppbVar23 = (byte *****)local_34;" (assignment_expression "pppppbVar23 = (byte *****)local_34" identifier = (cast_expression "(byte *****)local_34" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (do_statement "do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);" do (compound_statement "{\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *(byte *)pppppbVar23;" (assignment_expression "bVar24 = *pbVar21 < *(byte *)pppppbVar23" identifier = (binary_expression "*pbVar21 < *(byte *)pppppbVar23" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*(byte *)pppppbVar23" * (cast_expression "(byte *)pppppbVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar26 = *pbVar21 == *(byte *)pppppbVar23;" (assignment_expression "bVar26 = *pbVar21 == *(byte *)pppppbVar23" identifier = (binary_expression "*pbVar21 == *(byte *)pppppbVar23" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*(byte *)pppppbVar23" * (cast_expression "(byte *)pppppbVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);" (assignment_expression "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2 + 1" (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }" { (expression_statement "iVar16 = 0xf;" (assignment_expression "iVar16 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf51);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf51)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf51)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf51)" ( (binary_expression "local_e0 + -0x11cf51" identifier + number_literal) )))) ;) (expression_statement "pppppbVar23 = (byte *****)local_34;" (assignment_expression "pppppbVar23 = (byte *****)local_34" identifier = (cast_expression "(byte *****)local_34" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);" do (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *(byte *)pppppbVar23;" (assignment_expression "bVar25 = *pbVar21 < *(byte *)pppppbVar23" identifier = (binary_expression "*pbVar21 < *(byte *)pppppbVar23" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*(byte *)pppppbVar23" * (cast_expression "(byte *)pppppbVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar24 = *pbVar21 == *(byte *)pppppbVar23;" (assignment_expression "bVar24 = *pbVar21 == *(byte *)pppppbVar23" identifier = (binary_expression "*pbVar21 == *(byte *)pppppbVar23" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*(byte *)pppppbVar23" * (cast_expression "(byte *)pppppbVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);" (assignment_expression "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2 + 1" (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }" if (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" ( (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }" { (if_statement "if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" if (parenthesized_expression "(local_34 == local_bc)" ( (binary_expression "local_34 == local_bc" identifier == identifier) )) (compound_statement "{\n          iVar16 = *(int *)local_e4;\n        }" { (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" else (compound_statement "{\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" { (expression_statement "*(byte *****)(puVar19 + -0x10) = local_34;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_34" (pointer_expression "*(byte *****)(puVar19 + -0x10)" * (cast_expression "(byte *****)(puVar19 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78539;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78539" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (goto_statement "goto LAB_000777af;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }" if (parenthesized_expression "(local_34 != local_bc)" ( (binary_expression "local_34 != local_bc" identifier != identifier) )) (compound_statement "{\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }" { (expression_statement "*(byte *****)(puVar19 + -0x10) = local_34;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_34" (pointer_expression "*(byte *****)(puVar19 + -0x10)" * (cast_expression "(byte *****)(puVar19 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78664;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78664" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(byte *****)(puVar19 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar19 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar19 + -0xc)" * (cast_expression "(byte *****)(puVar19 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" identifier = identifier) ;) (expression_statement "local_30 = (byte ***)param_1;" (assignment_expression "local_30 = (byte ***)param_1" identifier = (cast_expression "(byte ***)param_1" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_bc = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_bc = *(byte *****)(local_ec + 0x15c)" identifier = (pointer_expression "*(byte *****)(local_ec + 0x15c)" * (cast_expression "(byte *****)(local_ec + 0x15c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;" (assignment_expression "*(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15" (pointer_expression "*(byte ******)(puVar19 + -0x10)" * (cast_expression "(byte ******)(puVar19 + -0x10)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (binary_expression "(byte *****)local_bc + 0x15" (cast_expression "(byte *****)local_bc" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x784b0;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x784b0" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_fc = FUN_000acc50();" (assignment_expression "local_fc = FUN_000acc50()" identifier = (call_expression "FUN_000acc50()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_f8 = local_fc + 0xc;" (assignment_expression "local_f8 = local_fc + 0xc" identifier = (binary_expression "local_fc + 0xc" identifier + number_literal)) ;) (expression_statement "local_100 = local_fc + 0x18;" (assignment_expression "local_100 = local_fc + 0x18" identifier = (binary_expression "local_fc + 0x18" identifier + number_literal)) ;) (expression_statement "local_f4 = local_fc + 0x24;" (assignment_expression "local_f4 = local_fc + 0x24" identifier = (binary_expression "local_fc + 0x24" identifier + number_literal)) ;) (expression_statement "local_104 = local_fc + 0x30;" (assignment_expression "local_104 = local_fc + 0x30" identifier = (binary_expression "local_fc + 0x30" identifier + number_literal)) ;) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_d9 = '\x01';" (assignment_expression "local_d9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "piVar4 = local_b0;" (assignment_expression "piVar4 = local_b0" identifier = identifier) ;) (if_statement "if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */\n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }" if (parenthesized_expression "(*(int *)(iVar16 + 8) == 0)" ( (binary_expression "*(int *)(iVar16 + 8) == 0" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */\n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }" { (expression_statement "*(undefined4 *)(puVar19 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar19 + -4)" * (cast_expression "(undefined4 *)(puVar19 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -4)" ( (binary_expression "puVar19 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar19 + -8)" * (cast_expression "(int *)(puVar19 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar19 + -0xc)" * (cast_expression "(undefined4 *)(puVar19 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar19 + -0x10)" * (cast_expression "(int *)(puVar19 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) comment comment (expression_statement "*(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;" (assignment_expression "*(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc" (pointer_expression "*(undefined1 **)(puVar19 + -0x14)" * (cast_expression "(undefined1 **)(puVar19 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_000786bc" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar16 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar16 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar16 + 8) + 0x5934" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar16 = *local_b0;" (assignment_expression "iVar16 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" * (cast_expression "(int **)(puVar19 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar6 = *(code **)(iVar16 + 0x48);" (assignment_expression "pcVar6 = *(code **)(iVar16 + 0x48)" identifier = (pointer_expression "*(code **)(iVar16 + 0x48)" * (cast_expression "(code **)(iVar16 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x48)" ( (binary_expression "iVar16 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7831b;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7831b" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar9 = (*pcVar6)();" (assignment_expression "cVar9 = (*pcVar6)()" identifier = (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "pcVar6 = *(code **)(*piVar4 + 8);" (assignment_expression "pcVar6 = *(code **)(*piVar4 + 8)" identifier = (pointer_expression "*(code **)(*piVar4 + 8)" * (cast_expression "(code **)(*piVar4 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 8)" ( (binary_expression "*piVar4 + 8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" if (parenthesized_expression "(pcVar6 != (code *)(local_e0 + -0x36d580))" ( (binary_expression "pcVar6 != (code *)(local_e0 + -0x36d580)" identifier != (cast_expression "(code *)(local_e0 + -0x36d580)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x36d580)" ( (binary_expression "local_e0 + -0x36d580" identifier + number_literal) )))) )) (compound_statement "{\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" { (expression_statement "*(byte **)(puVar19 + -0xc) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0xc) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0xc)" * (cast_expression "(byte **)(puVar19 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" * (cast_expression "(int **)(puVar19 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7856c;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7856c" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_da = (*pcVar6)();" (assignment_expression "local_da = (*pcVar6)()" identifier = (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00077807;" goto statement_identifier ;) })) (expression_statement "pcVar6 = *(code **)(*piVar4 + 0x4c);" (assignment_expression "pcVar6 = *(code **)(*piVar4 + 0x4c)" identifier = (pointer_expression "*(code **)(*piVar4 + 0x4c)" * (cast_expression "(code **)(*piVar4 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x4c)" ( (binary_expression "*piVar4 + 0x4c" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (expression_statement "bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);" (assignment_expression "bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U)" identifier = (binary_expression "pcVar6 < (code *)(local_e0 - 0x36d4c0U)" identifier < (cast_expression "(code *)(local_e0 - 0x36d4c0U)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 - 0x36d4c0U)" ( (binary_expression "local_e0 - 0x36d4c0U" identifier - number_literal) ))))) ;) (expression_statement "bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);" (assignment_expression "bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U)" identifier = (binary_expression "pcVar6 == (code *)(local_e0 - 0x36d4c0U)" identifier == (cast_expression "(code *)(local_e0 - 0x36d4c0U)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 - 0x36d4c0U)" ( (binary_expression "local_e0 - 0x36d4c0U" identifier - number_literal) ))))) ;) (if_statement "if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" { (expression_statement "*(byte **)(puVar19 + -0xc) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0xc) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0xc)" * (cast_expression "(byte **)(puVar19 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" * (cast_expression "(int **)(puVar19 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78586;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78586" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_da = (*pcVar6)();" (assignment_expression "local_da = (*pcVar6)()" identifier = (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00077807;" goto statement_identifier ;) })) (expression_statement "iVar16 = 0xc;" (assignment_expression "iVar16 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c39e);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c39e)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c39e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c39e)" ( (binary_expression "local_e0 + -0x11c39e" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *pbVar13;" (assignment_expression "bVar24 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar26 = *pbVar21 == *pbVar13;" (assignment_expression "bVar26 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }" { (expression_statement "iVar16 = 0x11;" (assignment_expression "iVar16 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c391);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c391)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c391)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c391)" ( (binary_expression "local_e0 + -0x11c391" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *pbVar13;" (assignment_expression "bVar25 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }" { (expression_statement "iVar16 = 0xc;" (assignment_expression "iVar16 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c37f);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c37f)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c37f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c37f)" ( (binary_expression "local_e0 + -0x11c37f" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar21 < *pbVar13;" (assignment_expression "bVar26 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar26 && !bVar24) == bVar26;" (assignment_expression "bVar24 = (!bVar26 && !bVar24) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar24) == bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" ( (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }" { (expression_statement "iVar16 = 0x11;" (assignment_expression "iVar16 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c372);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c372)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c372)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c372)" ( (binary_expression "local_e0 + -0x11c372" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);" do (compound_statement "{\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *pbVar13;" (assignment_expression "bVar25 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }" { (expression_statement "iVar16 = 9;" (assignment_expression "iVar16 = 9" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c360);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c360)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c360)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c360)" ( (binary_expression "local_e0 + -0x11c360" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);" do (compound_statement "{\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar21 < *pbVar13;" (assignment_expression "bVar26 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "local_da = (!bVar26 && !bVar24) != bVar26;" (assignment_expression "local_da = (!bVar26 && !bVar24) != bVar26" identifier = (binary_expression "(!bVar26 && !bVar24) != bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" ( (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00077807;" goto statement_identifier ;) })) })) })) })) })) })) (expression_statement "local_da = '\0';" (assignment_expression "local_da = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" statement_identifier : (if_statement "if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" { (expression_statement "local_e8 = (byte ***)0x0;" (assignment_expression "local_e8 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "local_f0 = local_a4;" (assignment_expression "local_f0 = local_a4" identifier = identifier) ;) (expression_statement "local_110 = (byte ****)&local_90;" (assignment_expression "local_110 = (byte ****)&local_90" identifier = (cast_expression "(byte ****)&local_90" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_90" & identifier))) ;) (expression_statement "local_b0 = (int *)0x0;" (assignment_expression "local_b0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" identifier = identifier) ;) (do_statement "do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);" do (compound_statement "{\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    }" { (expression_statement "ppppbVar22 = local_c0;" (assignment_expression "ppppbVar22 = local_c0" identifier = identifier) ;) (expression_statement "local_d8 = param_2[2];" (assignment_expression "local_d8 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[5];" (assignment_expression "local_b8 = param_2[5]" identifier = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "ppppbVar3 = (byte ****)param_2[3];" (assignment_expression "ppppbVar3 = (byte ****)param_2[3]" identifier = (cast_expression "(byte ****)param_2[3]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "local_bc = (byte ****)param_2[4];" (assignment_expression "local_bc = (byte ****)param_2[4]" identifier = (cast_expression "(byte ****)param_2[4]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (if_statement "if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" if (parenthesized_expression "(ppppbVar3 < param_4)" ( (binary_expression "ppppbVar3 < param_4" identifier < identifier) )) (compound_statement "{\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11e2b4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11cf41" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785a9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785a9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar16 = param_5 + (int)ppppbVar3 * 0x18;" (assignment_expression "iVar16 = param_5 + (int)ppppbVar3 * 0x18" identifier = (binary_expression "param_5 + (int)ppppbVar3 * 0x18" identifier + (binary_expression "(int)ppppbVar3 * 0x18" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);" (assignment_expression "local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6)" identifier = (binary_expression "(byte ***)(uint)*(ushort *)(iVar16 + 6)" (cast_expression "(byte ***)(uint)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar16 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 6)" ( (binary_expression "iVar16 + 6" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" if (parenthesized_expression "(local_b4 < (byte ****)0xff00)" ( (binary_expression "local_b4 < (byte ****)0xff00" identifier < (cast_expression "(byte ****)0xff00" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }" { (labeled_statement "LAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);" statement_identifier : (expression_statement "local_cc = *(byte *****)(iVar16 + 8);" (assignment_expression "local_cc = *(byte *****)(iVar16 + 8)" identifier = (pointer_expression "*(byte *****)(iVar16 + 8)" * (cast_expression "(byte *****)(iVar16 + 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) ))))) ;)) (expression_statement "local_c8 = *(int *)(iVar16 + 0xc);" (assignment_expression "local_c8 = *(int *)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *)(iVar16 + 0xc)" * (cast_expression "(int *)(iVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_cc);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_cc)" identifier = (cast_expression "(byte *)((int)local_bc + (int)local_cc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + (int)local_cc)" ( (binary_expression "(int)local_bc + (int)local_cc" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_cc" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);" (assignment_expression "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" identifier = (binary_expression "local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" (binary_expression "local_b8 + local_c8" identifier + identifier) + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_cc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_cc)" identifier (argument_list "((uint)local_bc,(uint)local_cc)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (if_statement "if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }" if (parenthesized_expression "(local_d9 != '\0')" ( (binary_expression "local_d9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }" { (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" identifier = identifier) ;) (expression_statement "local_30 = local_b4;" (assignment_expression "local_30 = local_b4" identifier = identifier) ;) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77a51;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77a51" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (if_statement "if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;" if (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) == 3)" ( (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" * (cast_expression "(byte *)(iVar16 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00077a68;" goto statement_identifier ;)) (labeled_statement "LAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x778e3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x778e3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aafe0();" (call_expression "FUN_000aafe0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000778e3;" goto statement_identifier ;) })) }) (else_clause "else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" else (compound_statement "{\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" { (if_statement "if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }" if (parenthesized_expression "((byte ****)local_b4 == (byte ****)0xffff)" ( (binary_expression "(byte ****)local_b4 == (byte ****)0xffff" (cast_expression "(byte ****)local_b4" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (cast_expression "(byte ****)0xffff" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }" { (expression_statement "ppppbVar11 = (byte ****)local_c0[0xc];" (assignment_expression "ppppbVar11 = (byte ****)local_c0[0xc]" identifier = (cast_expression "(byte ****)local_c0[0xc]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_c0[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }" if (parenthesized_expression "(ppppbVar11 == (byte ****)0x0)" ( (binary_expression "ppppbVar11 == (byte ****)0x0" identifier == (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }" { (expression_statement "ppppbVar11 = (byte ****)*local_c0;" (assignment_expression "ppppbVar11 = (byte ****)*local_c0" identifier = (cast_expression "(byte ****)*local_c0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_c0" * identifier))) ;) (expression_statement "*(byte *****)(puVar20 + -0x10) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0x10) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0x10)" * (cast_expression "(byte *****)(puVar20 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pppbVar7 = ppppbVar11[0x1b];" (assignment_expression "pppbVar7 = ppppbVar11[0x1b]" identifier = (subscript_expression "ppppbVar11[0x1b]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7816f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7816f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "ppppbVar11 = (byte ****)(*(code *)pppbVar7)();" (assignment_expression "ppppbVar11 = (byte ****)(*(code *)pppbVar7)()" identifier = (cast_expression "(byte ****)(*(code *)pppbVar7)()" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)pppbVar7)()" (parenthesized_expression "(*(code *)pppbVar7)" ( (pointer_expression "*(code *)pppbVar7" * (cast_expression "(code *)pppbVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "ppppbVar22[0xc] = (byte ***)ppppbVar11;" (assignment_expression "ppppbVar22[0xc] = (byte ***)ppppbVar11" (subscript_expression "ppppbVar22[0xc]" identifier [ number_literal ]) = (cast_expression "(byte ***)ppppbVar11" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) })) (expression_statement "*(byte *****)(puVar20 + -8) = ppppbVar3;" (assignment_expression "*(byte *****)(puVar20 + -8) = ppppbVar3" (pointer_expression "*(byte *****)(puVar20 + -8)" * (cast_expression "(byte *****)(puVar20 + -8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x10) = ppppbVar11;" (assignment_expression "*(byte *****)(puVar20 + -0x10) = ppppbVar11" (pointer_expression "*(byte *****)(puVar20 + -0x10)" * (cast_expression "(byte *****)(puVar20 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7809f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7809f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_b4 = (byte ***)FUN_00121c60();" (assignment_expression "local_b4 = (byte ***)FUN_00121c60()" identifier = (cast_expression "(byte ***)FUN_00121c60()" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "FUN_00121c60()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_000779f0;" goto statement_identifier ;) })) (expression_statement "local_cc = *(byte *****)(iVar16 + 8);" (assignment_expression "local_cc = *(byte *****)(iVar16 + 8)" identifier = (pointer_expression "*(byte *****)(iVar16 + 8)" * (cast_expression "(byte *****)(iVar16 + 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_c8 = *(int *)(iVar16 + 0xc);" (assignment_expression "local_c8 = *(int *)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *)(iVar16 + 0xc)" * (cast_expression "(int *)(iVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_cc);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_cc)" identifier = (cast_expression "(byte *)((int)local_bc + (int)local_cc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + (int)local_cc)" ( (binary_expression "(int)local_bc + (int)local_cc" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_cc" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);" (assignment_expression "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" identifier = (binary_expression "local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" (binary_expression "local_b8 + local_c8" identifier + identifier) + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_cc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_cc)" identifier (argument_list "((uint)local_bc,(uint)local_cc)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (if_statement "if (local_d9 == '\0') goto LAB_00077980;" if (parenthesized_expression "(local_d9 == '\0')" ( (binary_expression "local_d9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00077980;" goto statement_identifier ;)) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x778b4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x778b4" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (if_statement "if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;" if (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) != 3)" ( (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" * (cast_expression "(byte *)(iVar16 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000778c8;" goto statement_identifier ;)) (labeled_statement "LAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (byte ****)0xffffffff;" (assignment_expression "local_34 = (byte ****)0xffffffff" identifier = (cast_expression "(byte ****)0xffffffff" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77a83;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77a83" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aafe0();" (call_expression "FUN_000aafe0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)(puVar20 + -0x10) = local_100;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_100" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_cc;" (assignment_expression "local_34 = local_cc" identifier = identifier) ;) (expression_statement "local_30 = (byte ***)local_c8;" (assignment_expression "local_30 = (byte ***)local_c8" identifier = (cast_expression "(byte ***)local_c8" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_2c = local_bc;" (assignment_expression "local_2c = local_bc" identifier = identifier) ;) (expression_statement "local_28 = local_b8;" (assignment_expression "local_28 = local_b8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7791e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7791e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000ab1b0();" (call_expression "FUN_000ab1b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppppbVar23 = (byte *****)*param_2;" (assignment_expression "pppppbVar23 = (byte *****)*param_2" identifier = (cast_expression "(byte *****)*param_2" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }" if (parenthesized_expression "(param_2[1] != 0)" ( (binary_expression "param_2[1] != 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11de3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11cc44" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78648;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78648" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "puVar2 = *(undefined4 **)(local_f4 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f4 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_f4 + 4)" * (cast_expression "(undefined4 **)(local_f4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 4)" ( (binary_expression "local_f4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (byte ****)pppppbVar23;" (assignment_expression "local_34 = (byte ****)pppppbVar23" identifier = (cast_expression "(byte ****)pppppbVar23" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f4 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_f4 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_f4 + 8)" * (cast_expression "(undefined4 **)(local_f4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 8)" ( (binary_expression "local_f4 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }" { (expression_statement "*(byte *****)(puVar20 + -8) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -8) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -8)" * (cast_expression "(byte *****)(puVar20 + -8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_f4;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f4" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78155;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78155" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa950();" (call_expression "FUN_000aa950()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" else (compound_statement "{\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" { (expression_statement "*puVar2 = pppppbVar23;" (assignment_expression "*puVar2 = pppppbVar23" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_f4 + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_f4 + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_f4 + 4)" * (cast_expression "(undefined4 **)(local_f4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 4)" ( (binary_expression "local_f4 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_6c = (byte ****)0x0;" (assignment_expression "local_6c = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(byte ******)(puVar20 + -0xc) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0xc) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0xc)" * (cast_expression "(byte ******)(puVar20 + -0xc)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_104;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_104" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77975;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77975" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000ab360();" (call_expression "FUN_000ab360()" identifier (argument_list "()" ( ))) ;) (if_statement "if (!bVar24) goto LAB_00077980;" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (goto_statement "goto LAB_00077980;" goto statement_identifier ;)) }))) (if_statement "if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }" if (parenthesized_expression "((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0))))" ( (binary_expression "(((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))" (parenthesized_expression "(((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1))" ( (binary_expression "((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)" (parenthesized_expression "((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1))" ( (binary_expression "(local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)" (parenthesized_expression "(local_da != '\0')" ( (binary_expression "local_da != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) != 1)" ( (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" * (cast_expression "(byte *)(iVar16 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)" ( (comma_expression "local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1" (assignment_expression "local_bc = (byte ****)local_c0[0x54]" identifier = (cast_expression "(byte ****)local_c0[0x54]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_c0[0x54]" identifier [ number_literal ]))) , (binary_expression "((uint)local_bc & 3) != 1" (parenthesized_expression "((uint)local_bc & 3)" ( (binary_expression "(uint)local_bc & 3" (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))" ( (parenthesized_expression "(0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0))" ( (binary_expression "0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)" (binary_expression "0x17 < local_d8" number_literal < identifier) || (parenthesized_expression "((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)" ( (binary_expression "(0x843f84U >> (local_d8 & 0x1f) & 1) == 0" (parenthesized_expression "(0x843f84U >> (local_d8 & 0x1f) & 1)" ( (binary_expression "0x843f84U >> (local_d8 & 0x1f) & 1" (binary_expression "0x843f84U >> (local_d8 & 0x1f)" number_literal >> (parenthesized_expression "(local_d8 & 0x1f)" ( (binary_expression "local_d8 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }" { (expression_statement "local_bc = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_bc = *(byte *****)(local_ec + 0x15c)" identifier = (pointer_expression "*(byte *****)(local_ec + 0x15c)" * (cast_expression "(byte *****)(local_ec + 0x15c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "local_7c = local_c0;" (assignment_expression "local_7c = local_c0" identifier = identifier) ;) (expression_statement "local_78 = (uint)*(ushort *)(iVar16 + 6);" (assignment_expression "local_78 = (uint)*(ushort *)(iVar16 + 6)" identifier = (binary_expression "(uint)*(ushort *)(iVar16 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar16 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 6)" ( (binary_expression "iVar16 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_9c = (byte ****)((byte *****)local_bc + 0xd);" (assignment_expression "local_9c = (byte ****)((byte *****)local_bc + 0xd)" identifier = (cast_expression "(byte ****)((byte *****)local_bc + 0xd)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((byte *****)local_bc + 0xd)" ( (binary_expression "(byte *****)local_bc + 0xd" (cast_expression "(byte *****)local_bc" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) ;) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_9c;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_9c" (pointer_expression "*(byte ******)(puVar20 + -0x14)" * (cast_expression "(byte ******)(puVar20 + -0x14)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_7c;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_7c" (pointer_expression "*(byte ******)(puVar20 + -0x18)" * (cast_expression "(byte ******)(puVar20 + -0x18)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_9c;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_9c" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" * (cast_expression "(byte *****)(puVar20 + -0x1c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" * (cast_expression "(undefined1 **)(puVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77ddf;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77ddf" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a8d90();" (call_expression "FUN_000a8d90()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) })) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(param_1 != (byte ****)local_b4)" ( (binary_expression "param_1 != (byte ****)local_b4" identifier != (cast_expression "(byte ****)local_b4" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) (compound_statement "{\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_cc = local_c0;" (assignment_expression "local_cc = local_c0" identifier = identifier) ;) (labeled_statement "LAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" statement_identifier : (if_statement "if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" if (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) == 0" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785c7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785c7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) + 0x18b1" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }" { (expression_statement "pppppbVar23 = *(byte ******)(local_ec + 0x158);" (assignment_expression "pppppbVar23 = *(byte ******)(local_ec + 0x158)" identifier = (pointer_expression "*(byte ******)(local_ec + 0x158)" * (cast_expression "(byte ******)(local_ec + 0x158)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(local_ec + 0x158)" ( (binary_expression "local_ec + 0x158" identifier + number_literal) ))))) ;) (expression_statement "local_74 = local_c0;" (assignment_expression "local_74 = local_c0" identifier = identifier) ;) (expression_statement "local_70 = (byte ***)param_1;" (assignment_expression "local_70 = (byte ***)param_1" identifier = (cast_expression "(byte ***)param_1" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_6c = local_cc;" (assignment_expression "local_6c = local_cc" identifier = identifier) ;) (expression_statement "local_68 = local_b4;" (assignment_expression "local_68 = local_b4" identifier = identifier) ;) (expression_statement "pppppbVar8 = (byte *****)pppppbVar23[6];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar23[6]" identifier = (cast_expression "(byte *****)pppppbVar23[6]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar23[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar14 = pppppbVar23 + 5;" (assignment_expression "pppppbVar14 = pppppbVar23 + 5" identifier = (binary_expression "pppppbVar23 + 5" identifier + number_literal)) ;) (if_statement "if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" if (parenthesized_expression "((byte *****)pppppbVar23[6] == (byte *****)0x0)" ( (binary_expression "(byte *****)pppppbVar23[6] == (byte *****)0x0" (cast_expression "(byte *****)pppppbVar23[6]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar23[6]" identifier [ number_literal ])) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }" { (labeled_statement "LAB_00077ba0:\n              local_8c = (byte ****)&local_74;" statement_identifier : (expression_statement "local_8c = (byte ****)&local_74;" (assignment_expression "local_8c = (byte ****)&local_74" identifier = (cast_expression "(byte ****)&local_74" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_74" & identifier))) ;)) (expression_statement "*(byte ******)(puVar20 + -0x10) = &local_8c;" (assignment_expression "*(byte ******)(puVar20 + -0x10) = &local_8c" (pointer_expression "*(byte ******)(puVar20 + -0x10)" * (cast_expression "(byte ******)(puVar20 + -0x10)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_8c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77bc1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77bc1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00068840();" (call_expression "FUN_00068840()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppppbVar15 = (byte *****)local_a8;" (assignment_expression "pppppbVar15 = (byte *****)local_a8" identifier = (cast_expression "(byte *****)local_a8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) }) (else_clause "else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" else (compound_statement "{\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" { (do_statement "do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);" do (compound_statement "{\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              }" { (while_statement "while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }" while (parenthesized_expression "((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))))" ( (parenthesized_expression "(pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))" ( (comma_expression "pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (assignment_expression "pppppbVar15 = pppppbVar8" identifier = identifier) , (binary_expression "pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (binary_expression "pppppbVar15[4] < local_c0" (subscript_expression "pppppbVar15[4]" identifier [ number_literal ]) < identifier) || (parenthesized_expression "((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" ( (parenthesized_expression "(local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))" ( (binary_expression "local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)" (binary_expression "local_c0 == pppppbVar15[4]" identifier == (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) && (parenthesized_expression "(pppppbVar15[5] < param_1)" ( (binary_expression "pppppbVar15[5] < param_1" (subscript_expression "pppppbVar15[5]" identifier [ number_literal ]) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }" { (expression_statement "pppppbVar1 = pppppbVar15 + 3;" (assignment_expression "pppppbVar1 = pppppbVar15 + 3" identifier = (binary_expression "pppppbVar15 + 3" identifier + number_literal)) ;) (expression_statement "pppppbVar8 = (byte *****)*pppppbVar1;" (assignment_expression "pppppbVar8 = (byte *****)*pppppbVar1" identifier = (cast_expression "(byte *****)*pppppbVar1" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppbVar1" * identifier))) ;) (expression_statement "pppppbVar15 = pppppbVar14;" (assignment_expression "pppppbVar15 = pppppbVar14" identifier = identifier) ;) (if_statement "if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;" if (parenthesized_expression "((byte *****)*pppppbVar1 == (byte *****)0x0)" ( (binary_expression "(byte *****)*pppppbVar1 == (byte *****)0x0" (cast_expression "(byte *****)*pppppbVar1" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppbVar1" * identifier)) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00077b7c;" goto statement_identifier ;)) })) (expression_statement "pppppbVar8 = (byte *****)pppppbVar15[2];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar15[2]" identifier = (cast_expression "(byte *****)pppppbVar15[2]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar15[2]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar14 = pppppbVar15;" (assignment_expression "pppppbVar14 = pppppbVar15" identifier = identifier) ;) }) while (parenthesized_expression "((byte *****)pppppbVar15[2] != (byte *****)0x0)" ( (binary_expression "(byte *****)pppppbVar15[2] != (byte *****)0x0" (cast_expression "(byte *****)pppppbVar15[2]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar15[2]" identifier [ number_literal ])) != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) (labeled_statement "LAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;" statement_identifier : (expression_statement "local_bc = (byte ****)pppppbVar23;" (assignment_expression "local_bc = (byte ****)pppppbVar23" identifier = (cast_expression "(byte ****)pppppbVar23" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (if_statement "if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;" if (parenthesized_expression "(((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))" ( (binary_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" (parenthesized_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4]))" ( (binary_expression "(pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])" (parenthesized_expression "(pppppbVar15 == pppppbVar23 + 5)" ( (binary_expression "pppppbVar15 == pppppbVar23 + 5" identifier == (binary_expression "pppppbVar23 + 5" identifier + number_literal)) )) || (parenthesized_expression "(local_c0 < pppppbVar15[4])" ( (binary_expression "local_c0 < pppppbVar15[4]" identifier < (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" ( (parenthesized_expression "(local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))" ( (binary_expression "local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])" (binary_expression "local_c0 == pppppbVar15[4]" identifier == (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) && (parenthesized_expression "(param_1 < pppppbVar15[5])" ( (binary_expression "param_1 < pppppbVar15[5]" identifier < (subscript_expression "pppppbVar15[5]" identifier [ number_literal ])) ))) )) ))) )) (goto_statement "goto LAB_00077ba0;" goto statement_identifier ;)) }))) (expression_statement "local_90 = (byte ****)(pppppbVar15 + 6);" (assignment_expression "local_90 = (byte ****)(pppppbVar15 + 6)" identifier = (cast_expression "(byte ****)(pppppbVar15 + 6)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(pppppbVar15 + 6)" ( (binary_expression "pppppbVar15 + 6" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_110;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_110" (pointer_expression "*(byte *****)(puVar20 + -0x14)" * (cast_expression "(byte *****)(puVar20 + -0x14)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0x18)" * (cast_expression "(byte ******)(puVar20 + -0x18)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_90;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_90" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" * (cast_expression "(byte *****)(puVar20 + -0x1c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" * (cast_expression "(undefined1 **)(puVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77bf0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77bf0" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a8cd0();" (call_expression "FUN_000a8cd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = local_ec;" (assignment_expression "iVar16 = local_ec" identifier = identifier) ;) (expression_statement "piVar4 = *(int **)(*(int *)local_e4 + 0xc);" (assignment_expression "piVar4 = *(int **)(*(int *)local_e4 + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)local_e4 + 0xc)" * (cast_expression "(int **)(*(int *)local_e4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)local_e4 + 0xc)" ( (binary_expression "*(int *)local_e4 + 0xc" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }" { (expression_statement "*(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;" (assignment_expression "*(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8" (pointer_expression "*(int *)(puVar20 + -0xc)" * (cast_expression "(int *)(puVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dfa8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar20 + -0x14) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar20 + -0x14)" * (cast_expression "(int *)(puVar20 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x78627;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x78627" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(int *)(puVar20 + -8) = local_d0;" (assignment_expression "*(int *)(puVar20 + -8) = local_d0" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0xc) = local_d4;" (assignment_expression "*(byte **)(puVar20 + -0xc) = local_d4" (pointer_expression "*(byte **)(puVar20 + -0xc)" * (cast_expression "(byte **)(puVar20 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte ****)(puVar20 + -0x10) = local_b4;" (assignment_expression "*(byte ****)(puVar20 + -0x10) = local_b4" (pointer_expression "*(byte ****)(puVar20 + -0x10)" * (cast_expression "(byte ****)(puVar20 + -0x10)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_cc;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_cc" (pointer_expression "*(byte *****)(puVar20 + -0x14)" * (cast_expression "(byte *****)(puVar20 + -0x14)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x18) = param_1;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = param_1" (pointer_expression "*(byte *****)(puVar20 + -0x18)" * (cast_expression "(byte *****)(puVar20 + -0x18)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" * (cast_expression "(byte *****)(puVar20 + -0x1c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x20) = local_ec;" (assignment_expression "*(int *)(puVar20 + -0x20) = local_ec" (pointer_expression "*(int *)(puVar20 + -0x20)" * (cast_expression "(int *)(puVar20 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar20 + -0x24) = piVar4;" (assignment_expression "*(int **)(puVar20 + -0x24) = piVar4" (pointer_expression "*(int **)(puVar20 + -0x24)" * (cast_expression "(int **)(puVar20 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar6 = *(code **)(iVar5 + 0x104);" (assignment_expression "pcVar6 = *(code **)(iVar5 + 0x104)" identifier = (pointer_expression "*(code **)(iVar5 + 0x104)" * (cast_expression "(code **)(iVar5 + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x104)" ( (binary_expression "iVar5 + 0x104" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x28) = 0x77c37;" (assignment_expression "*(undefined4 *)(puVar20 + -0x28) = 0x77c37" (pointer_expression "*(undefined4 *)(puVar20 + -0x28)" * (cast_expression "(undefined4 *)(puVar20 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x28)" ( (binary_expression "puVar20 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pppbVar7 = local_e8;" (assignment_expression "pppbVar7 = local_e8" identifier = identifier) ;) (expression_statement "puVar19 = puVar20 + -4;" (assignment_expression "puVar19 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) (if_statement "if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }" if (parenthesized_expression "((byte ****)local_e8 != (byte ****)0x0)" ( (binary_expression "(byte ****)local_e8 != (byte ****)0x0" (cast_expression "(byte ****)local_e8" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }" { (expression_statement "iVar16 = *(int *)(iVar16 + 0x158);" (assignment_expression "iVar16 = *(int *)(iVar16 + 0x158)" identifier = (pointer_expression "*(int *)(iVar16 + 0x158)" * (cast_expression "(int *)(iVar16 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x158)" ( (binary_expression "iVar16 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "local_bc = (byte ****)&local_2c;" (assignment_expression "local_bc = (byte ****)&local_2c" identifier = (cast_expression "(byte ****)&local_2c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "*(byte ****)(puVar20 + -0x14) = local_e8;" (assignment_expression "*(byte ****)(puVar20 + -0x14) = local_e8" (pointer_expression "*(byte ****)(puVar20 + -0x14)" * (cast_expression "(byte ****)(puVar20 + -0x14)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "local_34 = local_bc;" (assignment_expression "local_34 = local_bc" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c74;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c74" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar10 = strlen(*(char **)(puVar20 + -0x14));" (assignment_expression "sVar10 = strlen(*(char **)(puVar20 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x14))" identifier (argument_list "(*(char **)(puVar20 + -0x14))" ( (pointer_expression "*(char **)(puVar20 + -0x14)" * (cast_expression "(char **)(puVar20 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppppbVar3 = local_c4;" (assignment_expression "ppppbVar3 = local_c4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);" (assignment_expression "*(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10)" (pointer_expression "*(byte **)(puVar20 + -0xc)" * (cast_expression "(byte **)(puVar20 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (cast_expression "(byte *)((int)pppbVar7 + sVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppbVar7 + sVar10)" ( (binary_expression "(int)pppbVar7 + sVar10" (cast_expression "(int)pppbVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*(byte ****)(puVar20 + -0x10) = pppbVar7;" (assignment_expression "*(byte ****)(puVar20 + -0x10) = pppbVar7" (pointer_expression "*(byte ****)(puVar20 + -0x10)" * (cast_expression "(byte ****)(puVar20 + -0x10)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0x14)" * (cast_expression "(byte *****)(puVar20 + -0x14)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c89;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c89" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = ppppbVar3;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = ppppbVar3" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = iVar16 + 0x44;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar16 + 0x44" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar16 + 0x44" identifier + number_literal)) ;) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_ac;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_ac" (pointer_expression "*(byte ******)(puVar20 + -0x14)" * (cast_expression "(byte ******)(puVar20 + -0x14)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_ac" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c9d;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c9d" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aaaa0();" (call_expression "FUN_000aaaa0()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppppbVar3 = local_ac;" (assignment_expression "ppppbVar3 = local_ac" identifier = identifier) ;) (if_statement "if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }" if (parenthesized_expression "(local_34 != local_bc)" ( (binary_expression "local_34 != local_bc" identifier != identifier) )) (compound_statement "{\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }" { (expression_statement "*(byte *****)(puVar20 + -0x18) = local_34;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = local_34" (pointer_expression "*(byte *****)(puVar20 + -0x18)" * (cast_expression "(byte *****)(puVar20 + -0x18)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 0x77cc0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pppppbVar23 = *(byte ******)(local_ec + 0x158);" (assignment_expression "pppppbVar23 = *(byte ******)(local_ec + 0x158)" identifier = (pointer_expression "*(byte ******)(local_ec + 0x158)" * (cast_expression "(byte ******)(local_ec + 0x158)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(local_ec + 0x158)" ( (binary_expression "local_ec + 0x158" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = puVar20 + -8;" (assignment_expression "puVar19 = puVar20 + -8" identifier = (binary_expression "puVar20 + -8" identifier + number_literal)) ;) (if_statement "if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }" if (parenthesized_expression "((byte *****)ppppbVar3 != pppppbVar23 + 0x12)" ( (binary_expression "(byte *****)ppppbVar3 != pppppbVar23 + 0x12" (cast_expression "(byte *****)ppppbVar3" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (binary_expression "pppppbVar23 + 0x12" identifier + number_literal)) )) (compound_statement "{\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }" { (expression_statement "local_30 = (byte ***)param_1;" (assignment_expression "local_30 = (byte ***)param_1" identifier = (cast_expression "(byte ***)param_1" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" identifier = identifier) ;) (expression_statement "pppppbVar8 = (byte *****)pppppbVar23[6];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar23[6]" identifier = (cast_expression "(byte *****)pppppbVar23[6]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar23[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar14 = pppppbVar23 + 5;" (assignment_expression "pppppbVar14 = pppppbVar23 + 5" identifier = (binary_expression "pppppbVar23 + 5" identifier + number_literal)) ;) (if_statement "if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" if (parenthesized_expression "((byte *****)pppppbVar23[6] == (byte *****)0x0)" ( (binary_expression "(byte *****)pppppbVar23[6] == (byte *****)0x0" (cast_expression "(byte *****)pppppbVar23[6]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar23[6]" identifier [ number_literal ])) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }" { (labeled_statement "LAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;" statement_identifier : (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_88;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_88" (pointer_expression "*(byte ******)(puVar20 + -0x18)" * (cast_expression "(byte ******)(puVar20 + -0x18)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_88" & identifier)) ;)) (expression_statement "local_88 = local_c4;" (assignment_expression "local_88 = local_c4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 0x781b4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 0x781b4" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00068840();" (call_expression "FUN_00068840()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppppbVar15 = (byte *****)local_a8;" (assignment_expression "pppppbVar15 = (byte *****)local_a8" identifier = (cast_expression "(byte *****)local_a8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) }) (else_clause "else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" else (compound_statement "{\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" { (do_statement "do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);" do (compound_statement "{\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  }" { (while_statement "while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }" while (parenthesized_expression "((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))))" ( (parenthesized_expression "(pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))" ( (comma_expression "pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (assignment_expression "pppppbVar15 = pppppbVar8" identifier = identifier) , (binary_expression "pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (binary_expression "pppppbVar15[4] < local_c0" (subscript_expression "pppppbVar15[4]" identifier [ number_literal ]) < identifier) || (parenthesized_expression "((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" ( (parenthesized_expression "(local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))" ( (binary_expression "local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)" (binary_expression "local_c0 == pppppbVar15[4]" identifier == (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) && (parenthesized_expression "(pppppbVar15[5] < param_1)" ( (binary_expression "pppppbVar15[5] < param_1" (subscript_expression "pppppbVar15[5]" identifier [ number_literal ]) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }" { (expression_statement "pppppbVar1 = pppppbVar15 + 3;" (assignment_expression "pppppbVar1 = pppppbVar15 + 3" identifier = (binary_expression "pppppbVar15 + 3" identifier + number_literal)) ;) (expression_statement "pppppbVar8 = (byte *****)*pppppbVar1;" (assignment_expression "pppppbVar8 = (byte *****)*pppppbVar1" identifier = (cast_expression "(byte *****)*pppppbVar1" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppbVar1" * identifier))) ;) (expression_statement "pppppbVar15 = pppppbVar14;" (assignment_expression "pppppbVar15 = pppppbVar14" identifier = identifier) ;) (if_statement "if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;" if (parenthesized_expression "((byte *****)*pppppbVar1 == (byte *****)0x0)" ( (binary_expression "(byte *****)*pppppbVar1 == (byte *****)0x0" (cast_expression "(byte *****)*pppppbVar1" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppbVar1" * identifier)) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00077d27;" goto statement_identifier ;)) })) (expression_statement "pppppbVar8 = (byte *****)pppppbVar15[2];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar15[2]" identifier = (cast_expression "(byte *****)pppppbVar15[2]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar15[2]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar14 = pppppbVar15;" (assignment_expression "pppppbVar14 = pppppbVar15" identifier = identifier) ;) }) while (parenthesized_expression "((byte *****)pppppbVar15[2] != (byte *****)0x0)" ( (binary_expression "(byte *****)pppppbVar15[2] != (byte *****)0x0" (cast_expression "(byte *****)pppppbVar15[2]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar15[2]" identifier [ number_literal ])) != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) (labeled_statement "LAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;" statement_identifier : (expression_statement "local_bc = (byte ****)pppppbVar23;" (assignment_expression "local_bc = (byte ****)pppppbVar23" identifier = (cast_expression "(byte ****)pppppbVar23" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (if_statement "if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;" if (parenthesized_expression "(((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))" ( (binary_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" (parenthesized_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4]))" ( (binary_expression "(pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])" (parenthesized_expression "(pppppbVar15 == pppppbVar23 + 5)" ( (binary_expression "pppppbVar15 == pppppbVar23 + 5" identifier == (binary_expression "pppppbVar23 + 5" identifier + number_literal)) )) || (parenthesized_expression "(local_c0 < pppppbVar15[4])" ( (binary_expression "local_c0 < pppppbVar15[4]" identifier < (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" ( (parenthesized_expression "(local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))" ( (binary_expression "local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])" (binary_expression "local_c0 == pppppbVar15[4]" identifier == (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) && (parenthesized_expression "(param_1 < pppppbVar15[5])" ( (binary_expression "param_1 < pppppbVar15[5]" identifier < (subscript_expression "pppppbVar15[5]" identifier [ number_literal ])) ))) )) ))) )) (goto_statement "goto LAB_00078190;" goto statement_identifier ;)) }))) (expression_statement "puVar19 = puVar20 + -8;" (assignment_expression "puVar19 = puVar20 + -8" identifier = (binary_expression "puVar20 + -8" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + -8;" (assignment_expression "puVar20 = puVar20 + -8" identifier = (binary_expression "puVar20 + -8" identifier + number_literal)) ;) (for_statement "for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }" for ( (assignment_expression "ppppbVar3 = (byte ****)ppppbVar3[0xc]" identifier = (cast_expression "(byte ****)ppppbVar3[0xc]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar3[0xc]" identifier [ number_literal ]))) ; (binary_expression "ppppbVar3 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ; (assignment_expression "ppppbVar3 = (byte ****)*ppppbVar3" identifier = (cast_expression "(byte ****)*ppppbVar3" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*ppppbVar3" * identifier))) ) (compound_statement "{\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }" { (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_94;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_94" (pointer_expression "*(byte ******)(puVar20 + -0x14)" * (cast_expression "(byte ******)(puVar20 + -0x14)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_94" & identifier)) ;) (expression_statement "*(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1" (pointer_expression "*(byte *****)(puVar20 + -0x18)" * (cast_expression "(byte *****)(puVar20 + -0x18)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (binary_expression "ppppbVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;" (assignment_expression "*(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6" (pointer_expression "*(byte ******)(puVar20 + -0x1c)" * (cast_expression "(byte ******)(puVar20 + -0x1c)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = (binary_expression "pppppbVar15 + 6" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" * (cast_expression "(undefined1 **)(puVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77d7e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77d7e" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_94 = (byte ****)(pppppbVar15 + 6);" (assignment_expression "local_94 = (byte ****)(pppppbVar15 + 6)" identifier = (cast_expression "(byte ****)(pppppbVar15 + 6)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(pppppbVar15 + 6)" ( (binary_expression "pppppbVar15 + 6" identifier + number_literal) )))) ;) (expression_statement "FUN_000a8cd0();" (call_expression "FUN_000a8cd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar19 = puVar20 + -4;" (assignment_expression "puVar19 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) })) })) })) })) })) }) (else_clause "else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" else (compound_statement "{\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" { (if_statement "if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }" if (parenthesized_expression "(ppppbVar3 < local_c0[0x2c])" ( (binary_expression "ppppbVar3 < local_c0[0x2c]" identifier < (subscript_expression "local_c0[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }" { (expression_statement "local_74 = (byte ****)0x0;" (assignment_expression "local_74 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" statement_identifier : (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11e2b4" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11cf41" identifier + number_literal)) ;) comment (expression_statement "*(undefined **)(puVar20 + -0x14) = &UNK_000780f8;" (assignment_expression "*(undefined **)(puVar20 + -0x14) = &UNK_000780f8" (pointer_expression "*(undefined **)(puVar20 + -0x14)" * (cast_expression "(undefined **)(puVar20 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000780f8" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];" (assignment_expression "uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c]" identifier = (binary_expression "(int)ppppbVar3 - (int)local_c0[0x2c]" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_c0[0x2c]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_c0[0x2c]" identifier [ number_literal ])))) ;) (expression_statement "local_b4 = local_c0[0x30];" (assignment_expression "local_b4 = local_c0[0x30]" identifier = (subscript_expression "local_c0[0x30]" identifier [ number_literal ])) ;) (if_statement "if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }" if (parenthesized_expression "((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18)" ( (binary_expression "(uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18" (call_expression "(uint)((int)local_b4 - (int)local_c0[0x2f] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_b4 - (int)local_c0[0x2f] >> 2)" ( (binary_expression "(int)local_b4 - (int)local_c0[0x2f] >> 2" (binary_expression "(int)local_b4 - (int)local_c0[0x2f]" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_c0[0x2f]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_c0[0x2f]" identifier [ number_literal ]))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11dcdc" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dcdc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11d1b8" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78609;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78609" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_74 = (byte ****)local_c0[0x2f][uVar18];" (assignment_expression "local_74 = (byte ****)local_c0[0x2f][uVar18]" identifier = (cast_expression "(byte ****)local_c0[0x2f][uVar18]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_c0[0x2f][uVar18]" (subscript_expression "local_c0[0x2f]" identifier [ number_literal ]) [ identifier ]))) ;) (if_statement "if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;" if (parenthesized_expression "((byte *****)local_74 == (byte *****)0x0)" ( (binary_expression "(byte *****)local_74 == (byte *****)0x0" (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_000780d7;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }" if (parenthesized_expression "((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)local_74 + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_74 + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((int)local_74 + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_74 + 0x2a)" * (cast_expression "(byte *)((int)local_74 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_74 + 0x2a)" ( (binary_expression "(int)local_74 + 0x2a" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }" { (expression_statement "*(byte *****)(puVar20 + -0xc) = local_74;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_74" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x780c5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x780c5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_74 = (byte ****)FUN_001e6f30();" (assignment_expression "local_74 = (byte ****)FUN_001e6f30()" identifier = (cast_expression "(byte ****)FUN_001e6f30()" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_001e6f30()" identifier (argument_list "()" ( ))))) ;) })) (if_statement "if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" if (parenthesized_expression "((*(byte *)((int)local_74 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_74 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_74 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_74 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_74 + 0x2a)" * (cast_expression "(byte *)((int)local_74 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_74 + 0x2a)" ( (binary_expression "(int)local_74 + 0x2a" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }" { (expression_statement "local_10c = (byte ***)((byte *****)local_74)[0xc];" (assignment_expression "local_10c = (byte ***)((byte *****)local_74)[0xc]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[0xc]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[0xc]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (expression_statement "local_108 = (byte ***)((byte *****)local_74)[0xd];" (assignment_expression "local_108 = (byte ***)((byte *****)local_74)[0xd]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[0xd]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[0xd]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_10c);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_10c)" identifier = (cast_expression "(byte *)((int)local_bc + (int)local_10c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + (int)local_10c)" ( (binary_expression "(int)local_bc + (int)local_10c" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_cc = ((byte *****)local_74)[2];" (assignment_expression "local_cc = ((byte *****)local_74)[2]" identifier = (subscript_expression "((byte *****)local_74)[2]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (expression_statement "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;" (assignment_expression "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" identifier = (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c)" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_10c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_10c)" identifier (argument_list "((uint)local_bc,(uint)local_10c)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_10c" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + identifier)) ;) (if_statement "if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" if (parenthesized_expression "(((uint)((byte *****)local_cc)[0xb] & 1) == 0)" ( (binary_expression "((uint)((byte *****)local_cc)[0xb] & 1) == 0" (parenthesized_expression "((uint)((byte *****)local_cc)[0xb] & 1)" ( (binary_expression "(uint)((byte *****)local_cc)[0xb] & 1" (subscript_expression "(uint)((byte *****)local_cc)[0xb]" (call_expression "(uint)((byte *****)local_cc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte *****)local_cc)" ( (cast_expression "(byte *****)local_cc" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) ))) [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }" { (expression_statement "local_b4 = (byte ***)((byte *****)local_74)[3];" (assignment_expression "local_b4 = (byte ***)((byte *****)local_74)[3]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[3]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[3]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (expression_statement "bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;" (assignment_expression "bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)local_74 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)local_74 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_74 + 0x2b)" * (cast_expression "(byte *)((int)local_74 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_74 + 0x2b)" ( (binary_expression "(int)local_74 + 0x2b" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;" (assignment_expression "bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2" identifier = (binary_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf) < 2" (parenthesized_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf)" ( (binary_expression "*(byte *)((byte *****)local_74 + 10) & 0xf" (pointer_expression "*(byte *)((byte *****)local_74 + 10)" * (cast_expression "(byte *)((byte *****)local_74 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *****)local_74 + 10)" ( (binary_expression "(byte *****)local_74 + 10" (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) & number_literal) )) < number_literal)) ;) (expression_statement "bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;" (assignment_expression "bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2" identifier = (binary_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf) == 2" (parenthesized_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf)" ( (binary_expression "*(byte *)((byte *****)local_74 + 10) & 0xf" (pointer_expression "*(byte *)((byte *****)local_74 + 10)" * (cast_expression "(byte *)((byte *****)local_74 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *****)local_74 + 10)" ( (binary_expression "(byte *****)local_74 + 10" (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }" { (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = local_da == '\0';" (assignment_expression "bVar26 = local_da == '\0'" identifier = (binary_expression "local_da == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }" { (if_statement "if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }" { (expression_statement "local_c4 = (byte ****)local_c0[0x54];" (assignment_expression "local_c4 = (byte ****)local_c0[0x54]" identifier = (cast_expression "(byte ****)local_c0[0x54]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_c0[0x54]" identifier [ number_literal ]))) ;) (expression_statement "bVar24 = ((uint)local_c4 & 3) == 0;" (assignment_expression "bVar24 = ((uint)local_c4 & 3) == 0" identifier = (binary_expression "((uint)local_c4 & 3) == 0" (parenthesized_expression "((uint)local_c4 & 3)" ( (binary_expression "(uint)local_c4 & 3" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (expression_statement "bVar26 = ((uint)local_c4 & 3) == 1;" (assignment_expression "bVar26 = ((uint)local_c4 & 3) == 1" identifier = (binary_expression "((uint)local_c4 & 3) == 1" (parenthesized_expression "((uint)local_c4 & 3)" ( (binary_expression "(uint)local_c4 & 3" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (if_statement "if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;" if (parenthesized_expression "((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))" ( (binary_expression "(bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)))" (parenthesized_expression "(bVar26)" ( identifier )) || (parenthesized_expression "((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)))" ( (parenthesized_expression "(bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))" ( (comma_expression "bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" (assignment_expression "bVar26 = local_d8 == 0x17" identifier = (binary_expression "local_d8 == 0x17" identifier == number_literal)) , (binary_expression "local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" (binary_expression "local_d8 < 0x18" identifier < number_literal) && (parenthesized_expression "(bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" ( (comma_expression "bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24" (assignment_expression "bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0" identifier = (binary_expression "(0x843f84U >> (local_d8 & 0x1f) & 1) != 0" (parenthesized_expression "(0x843f84U >> (local_d8 & 0x1f) & 1)" ( (binary_expression "0x843f84U >> (local_d8 & 0x1f) & 1" (binary_expression "0x843f84U >> (local_d8 & 0x1f)" number_literal >> (parenthesized_expression "(local_d8 & 0x1f)" ( (binary_expression "local_d8 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal)) , identifier) )))) )) ))) )) (goto_statement "goto LAB_00077ec0;" goto statement_identifier ;)) })) (expression_statement "local_c4 = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_c4 = *(byte *****)(local_ec + 0x15c)" identifier = (pointer_expression "*(byte *****)(local_ec + 0x15c)" * (cast_expression "(byte *****)(local_ec + 0x15c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_98;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_98" (pointer_expression "*(byte ******)(puVar20 + -0x14)" * (cast_expression "(byte ******)(puVar20 + -0x14)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_98" & identifier)) ;) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_84;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_84" (pointer_expression "*(byte ******)(puVar20 + -0x18)" * (cast_expression "(byte ******)(puVar20 + -0x18)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_84" & identifier)) ;) (expression_statement "local_98 = (byte ****)((byte *****)local_c4 + 0xd);" (assignment_expression "local_98 = (byte ****)((byte *****)local_c4 + 0xd)" identifier = (cast_expression "(byte ****)((byte *****)local_c4 + 0xd)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((byte *****)local_c4 + 0xd)" ( (binary_expression "(byte *****)local_c4 + 0xd" (cast_expression "(byte *****)local_c4" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) ;) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_98;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_98" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" * (cast_expression "(byte *****)(puVar20 + -0x1c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" * (cast_expression "(undefined1 **)(puVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x78301;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x78301" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_84 = local_cc;" (assignment_expression "local_84 = local_cc" identifier = identifier) ;) (expression_statement "local_80 = local_b4;" (assignment_expression "local_80 = local_b4" identifier = identifier) ;) (expression_statement "FUN_000a8d90();" (call_expression "FUN_000a8d90()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;" (assignment_expression "bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20" identifier = (binary_expression "(undefined1 *)0xffffffe3 < puVar20 + -0x20" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar20 + -0x20" identifier + number_literal))) ;) (expression_statement "bVar26 = puVar20 == (undefined1 *)0x4;" (assignment_expression "bVar26 = puVar20 == (undefined1 *)0x4" identifier = (binary_expression "puVar20 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) })) })) }) (else_clause "else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" else (compound_statement "{\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" { (expression_statement "local_b4 = (byte ***)0x0;" (assignment_expression "local_b4 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (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 "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" else (compound_statement "{\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" { (expression_statement "local_10c = (byte ***)((byte *****)local_74)[0xc];" (assignment_expression "local_10c = (byte ***)((byte *****)local_74)[0xc]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[0xc]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[0xc]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (expression_statement "local_b4 = (byte ***)0x0;" (assignment_expression "local_b4 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "local_108 = (byte ***)((byte *****)local_74)[0xd];" (assignment_expression "local_108 = (byte ***)((byte *****)local_74)[0xd]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[0xd]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[0xd]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (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 "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_10c);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_10c)" identifier = (cast_expression "(byte *)((int)local_bc + (int)local_10c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + (int)local_10c)" ( (binary_expression "(int)local_bc + (int)local_10c" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;" (assignment_expression "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" identifier = (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c)" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_10c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_10c)" identifier (argument_list "((uint)local_bc,(uint)local_10c)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_10c" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + identifier)) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) }))) (labeled_statement "LAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;" statement_identifier : (expression_statement "ppppbVar3 = (byte ****)*local_74;" (assignment_expression "ppppbVar3 = (byte ****)*local_74" identifier = (cast_expression "(byte ****)*local_74" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_74" * identifier))) ;)) (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf31);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf31)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf31)" ( (binary_expression "local_e0 + -0x11cf31" identifier + number_literal) )))) ;) (expression_statement "ppppbVar22 = ppppbVar3;" (assignment_expression "ppppbVar22 = ppppbVar3" identifier = identifier) ;) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);" do (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *(byte *)ppppbVar22;" (assignment_expression "bVar24 = *pbVar21 < *(byte *)ppppbVar22" identifier = (binary_expression "*pbVar21 < *(byte *)ppppbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*(byte *)ppppbVar22" * (cast_expression "(byte *)ppppbVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar26 = *pbVar21 == *(byte *)ppppbVar22;" (assignment_expression "bVar26 = *pbVar21 == *(byte *)ppppbVar22" identifier = (binary_expression "*pbVar21 == *(byte *)ppppbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*(byte *)ppppbVar22" * (cast_expression "(byte *)ppppbVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2" (cast_expression "(int)ppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n          ppppbVar3 = ppppbVar3 + 2;\n        }" { (expression_statement "ppppbVar3 = ppppbVar3 + 2;" (assignment_expression "ppppbVar3 = ppppbVar3 + 2" identifier = (binary_expression "ppppbVar3 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" else (compound_statement "{\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" { (expression_statement "iVar16 = 7;" (assignment_expression "iVar16 = 7" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf28);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf28)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf28)" ( (binary_expression "local_e0 + -0x11cf28" identifier + number_literal) )))) ;) (expression_statement "ppppbVar22 = ppppbVar3;" (assignment_expression "ppppbVar22 = ppppbVar3" identifier = identifier) ;) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);" do (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *(byte *)ppppbVar22;" (assignment_expression "bVar25 = *pbVar21 < *(byte *)ppppbVar22" identifier = (binary_expression "*pbVar21 < *(byte *)ppppbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*(byte *)ppppbVar22" * (cast_expression "(byte *)ppppbVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar24 = *pbVar21 == *(byte *)ppppbVar22;" (assignment_expression "bVar24 = *pbVar21 == *(byte *)ppppbVar22" identifier = (binary_expression "*pbVar21 == *(byte *)ppppbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*(byte *)ppppbVar22" * (cast_expression "(byte *)ppppbVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2" (cast_expression "(int)ppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);" (assignment_expression "ppppbVar3 = (byte ****)((int)ppppbVar3 + 7)" identifier = (cast_expression "(byte ****)((int)ppppbVar3 + 7)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar3 + 7)" ( (binary_expression "(int)ppppbVar3 + 7" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }" if (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" ( (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n            ppppbVar3 = (byte ****)local_e8;\n          }" { (expression_statement "ppppbVar3 = (byte ****)local_e8;" (assignment_expression "ppppbVar3 = (byte ****)local_e8" identifier = (cast_expression "(byte ****)local_e8" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) })) }))) (expression_statement "local_e8 = (byte ***)ppppbVar3;" (assignment_expression "local_e8 = (byte ***)ppppbVar3" identifier = (cast_expression "(byte ***)ppppbVar3" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }" if (parenthesized_expression "(local_d9 != '\0')" ( (binary_expression "local_d9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }" { (if_statement "if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }" { (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) }) (else_clause "else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" else (compound_statement "{\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" { (expression_statement "local_34 = local_cc;" (assignment_expression "local_34 = local_cc" identifier = identifier) ;) (expression_statement "local_30 = local_b4;" (assignment_expression "local_30 = local_b4" identifier = identifier) ;) }))) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77f29;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77f29" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_f8 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f8 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_f8 + 4)" * (cast_expression "(undefined4 **)(local_f8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f8 + 4)" ( (binary_expression "local_f8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f8 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_f8 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_f8 + 8)" * (cast_expression "(undefined4 **)(local_f8 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f8 + 8)" ( (binary_expression "local_f8 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }" { (expression_statement "*(byte ******)(puVar20 + -8) = &local_74;" (assignment_expression "*(byte ******)(puVar20 + -8) = &local_74" (pointer_expression "*(byte ******)(puVar20 + -8)" * (cast_expression "(byte ******)(puVar20 + -8)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x781fb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x781fb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a82c0();" (call_expression "FUN_000a82c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" else (compound_statement "{\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" { (expression_statement "*puVar2 = local_74;" (assignment_expression "*puVar2 = local_74" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_f8 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_f8 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_f8 + 4)" * (cast_expression "(undefined4 **)(local_f8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f8 + 4)" ( (binary_expression "local_f8 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_100;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_100" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (byte ****)local_10c;" (assignment_expression "local_34 = (byte ****)local_10c" identifier = (cast_expression "(byte ****)local_10c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "local_30 = local_108;" (assignment_expression "local_30 = local_108" identifier = identifier) ;) (expression_statement "local_2c = local_bc;" (assignment_expression "local_2c = local_bc" identifier = identifier) ;) (expression_statement "local_28 = local_b8;" (assignment_expression "local_28 = local_b8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77f82;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77f82" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000ab1b0();" (call_expression "FUN_000ab1b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppppbVar23 = (byte *****)*param_2;" (assignment_expression "pppppbVar23 = (byte *****)*param_2" identifier = (cast_expression "(byte *****)*param_2" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }" if (parenthesized_expression "(param_2[1] != 0)" ( (binary_expression "param_2[1] != 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11de3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11cc44" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785e8;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785e8" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "puVar2 = *(undefined4 **)(local_f4 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f4 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_f4 + 4)" * (cast_expression "(undefined4 **)(local_f4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 4)" ( (binary_expression "local_f4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (byte ****)pppppbVar23;" (assignment_expression "local_34 = (byte ****)pppppbVar23" identifier = (cast_expression "(byte ****)pppppbVar23" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f4 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_f4 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_f4 + 8)" * (cast_expression "(undefined4 **)(local_f4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 8)" ( (binary_expression "local_f4 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }" { (expression_statement "*(byte *****)(puVar20 + -8) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -8) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -8)" * (cast_expression "(byte *****)(puVar20 + -8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_f4;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f4" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x781dd;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x781dd" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa950();" (call_expression "FUN_000aa950()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" else (compound_statement "{\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" { (expression_statement "*puVar2 = pppppbVar23;" (assignment_expression "*puVar2 = pppppbVar23" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_f4 + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_f4 + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_f4 + 4)" * (cast_expression "(undefined4 **)(local_f4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 4)" ( (binary_expression "local_f4 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_6c = (byte ****)0x0;" (assignment_expression "local_6c = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(byte ******)(puVar20 + -0xc) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0xc) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0xc)" * (cast_expression "(byte ******)(puVar20 + -0xc)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_104;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_104" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77fd9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77fd9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000ab360();" (call_expression "FUN_000ab360()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (bVar17 != 0) goto LAB_00077afb;" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00077afb;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);" statement_identifier : (expression_statement "local_b0 = (int *)((int)local_b0 + 1);" (assignment_expression "local_b0 = (int *)((int)local_b0 + 1)" identifier = (cast_expression "(int *)((int)local_b0 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b0 + 1)" ( (binary_expression "(int)local_b0 + 1" (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "param_2 = param_2 + 6;" (assignment_expression "param_2 = param_2 + 6" identifier = (binary_expression "param_2 + 6" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" identifier = identifier) ;) }) while (parenthesized_expression "(param_3 != local_b0)" ( (binary_expression "param_3 != local_b0" identifier != identifier) )) ;) }))) (if_statement "if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }" if (parenthesized_expression "(local_4c[0] != local_114)" ( (binary_expression "local_4c[0] != local_114" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }" { (expression_statement "*(byte **)(puVar19 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0x10)" * (cast_expression "(byte **)(puVar19 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78222;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78222" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }" if (parenthesized_expression "((local_64 != 0) && (local_60 != 0))" ( (binary_expression "(local_64 != 0) && (local_60 != 0)" (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }" { (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c" (pointer_expression "*(int *)(puVar19 + -0x10)" * (cast_expression "(int *)(puVar19 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11ca0c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7824a;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7824a" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x10) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -0x10) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -0x10)" * (cast_expression "(undefined4 *)(puVar19 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = local_54;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = local_54" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x18) = local_58;" (assignment_expression "*(undefined4 *)(puVar19 + -0x18) = local_58" (pointer_expression "*(undefined4 *)(puVar19 + -0x18)" * (cast_expression "(undefined4 *)(puVar19 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x18)" ( (binary_expression "puVar19 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x1c) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0x1c) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + -0x1c)" * (cast_expression "(undefined4 *)(puVar19 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x1c)" ( (binary_expression "puVar19 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar19 + -0x20) = local_60;" (assignment_expression "*(int *)(puVar19 + -0x20) = local_60" (pointer_expression "*(int *)(puVar19 + -0x20)" * (cast_expression "(int *)(puVar19 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x20)" ( (binary_expression "puVar19 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x24) = 0x7825e;" (assignment_expression "*(undefined4 *)(puVar19 + -0x24) = 0x7825e" (pointer_expression "*(undefined4 *)(puVar19 + -0x24)" * (cast_expression "(undefined4 *)(puVar19 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x24)" ( (binary_expression "puVar19 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0007822c) */\n/* WARNING: Removing unreachable block (ram,0x00078233) */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: gc_process_relocs<64, false, (anonymous namespace)::Target_powerpc<64,\n   false>, (anonymous namespace)::Target_powerpc<64, false>::Scan, gold::Default_classify_reloc<4,\n   64, false> > */\n\nvoid gold::\n     gc_process_relocs<64,_false,_(anonymous_namespace)::Target_powerpc<64,_false>,_(anonymous_namespace)::Target_powerpc<64,_false>::Scan,_gold::Default_classify_reloc<4,_64,_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_powerpc<64,_false> *target,\n               Sized_relobj_file<64,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)\n\n{\n  char *pcVar1;\n  Output_data *pOVar2;\n  pointer puVar3;\n  Sized_relobj_file<64,_false> *pSVar4;\n  char *pcVar5;\n  int *piVar6;\n  int iVar7;\n  code *pcVar8;\n  _Hash_node_base *p_Var9;\n  Sized_relobj_file<64,_false> *pSVar10;\n  pointer ppSVar11;\n  char *pcVar12;\n  Address AVar13;\n  Section_id *pSVar14;\n  Output_segment *pOVar15;\n  Target_powerpc<64,_false> *pTVar16;\n  char cVar17;\n  size_t sVar18;\n  _func_int_varargs **pp_Var19;\n  pointer ppOVar20;\n  pointer pcVar21;\n  Output_segment *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 uVar22;\n  char *pcVar23;\n  char *pcVar24;\n  int iVar25;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar26;\n  byte bVar27;\n  uint uVar28;\n  undefined4 *puVar29;\n  undefined4 *puVar30;\n  byte *pbVar31;\n  int unaff_EDI;\n  _func_int_varargs **pp_Var32;\n  _Alloc_hider _Var33;\n  Relobj *pRVar34;\n  bool bVar35;\n  bool bVar36;\n  bool bVar37;\n  byte bVar38;\n  undefined8 uVar39;\n  undefined1 auStack_11c [8];\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_114;\n  __node_gen_type *local_110;\n  Relobj *local_10c;\n  Compressed_section_map *local_108;\n  Reloc_addend_size_info *local_104;\n  Addend_info *local_100;\n  mapped_type *local_fc;\n  Symbol_info *local_f8;\n  Offset_info *local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  _func_int_varargs **local_e8;\n  byte *local_e4;\n  int local_e0;\n  bool local_da;\n  char local_d9;\n  __bucket_type *local_d8;\n  int local_d4;\n  pointer local_d0;\n  Output_segment *local_cc;\n  uint local_c8;\n  Section_id *local_c4;\n  Output_segment *local_c0;\n  Relobj *local_bc;\n  pointer local_b8;\n  Symbol_table *local_b4;\n  Target_powerpc<64,_false> *local_b0;\n  _Hash_node_base *local_ac;\n  char *local_a8;\n  undefined1 local_a4 [8];\n  __node_gen_type __node_gen_2;\n  __node_gen_type __node_gen_3;\n  __node_gen_type __node_gen_1;\n  __node_gen_type __node_gen;\n  Section_id *local_8c;\n  Section_id *local_88;\n  Output_segment *local_84;\n  Symbol_table *local_80;\n  Output_segment *local_7c;\n  uint local_78;\n  Section_id src_id_1;\n  Section_id dst_id;\n  Scan scan;\n  string src_section_name;\n  Section_id src_id;\n  Relobj *local_2c;\n  _Alloc_hider local_28;\n  \n  bVar38 = 0;\n  uVar39 = __x86_get_pc_thunk_di();\n  local_b0 = (Target_powerpc<64,_false> *)((ulonglong)uVar39 >> 0x20);\n  local_ec = (int)uVar39;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */\n    do_gold_unreachable((char *)(unaff_EDI + 0x26ab94),0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = &src_section_name.field_2;\n    src_section_name._M_dataplus._M_p = (pointer)local_114;\n                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar29 = (undefined4 *)auStack_11c;\n    uVar22 = extraout_ECX_01;\n  }\n  else {\n    pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_start[0x10];\n    if (pOVar2 == (Output_data *)(&UNK_00039d57 + unaff_EDI)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      elfcpp::Elf_file<64,_false,_gold::Object>::section_name\n                ((Elf_file<64,_false,_gold::Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab);\n      uVar22 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);\n      uVar22 = extraout_ECX_02;\n    }\n    puVar29 = (undefined4 *)&stack0xfffffee0;\n    local_114 = &src_section_name.field_2;\n  }\n  _Var33._M_p = src_section_name._M_dataplus._M_p;\n  iVar25 = *(int *)local_e4;\n  if (*(int *)(iVar25 + 8) == 0) {\n    *(undefined4 *)((int)puVar29 + -4) = uVar22;\n    *(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)((int)puVar29 + -0xc) = 0x5c;\n    *(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78688;\n    do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8));\n  }\n  if (*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = (Reloc_addend_size_info *)0x0;\n    local_f4 = (Offset_info *)0x0;\n    local_100 = (Addend_info *)0x0;\n    local_f8 = (Symbol_info *)0x0;\n    local_fc = (mapped_type *)0x0;\n  }\n  else {\n    local_bc = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar21 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78417;\n      sVar18 = strlen(*(char **)((int)puVar29 + -0x10));\n      pcVar21 = _Var33._M_p + sVar18;\n    }\n    *(undefined4 *)((int)puVar29 + -4) = 0;\n    *(pointer *)((int)puVar29 + -8) = pcVar21;\n    local_c4 = &src_id;\n    *(pointer *)((int)puVar29 + -0xc) = _Var33._M_p;\n    *(Section_id **)((int)puVar29 + -0x10) = local_c4;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x7842f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar25 = 5;\n    bVar35 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar29 + -0x10);\n    bVar37 = puVar29 == (undefined4 *)0x0;\n    pbVar31 = (byte *)(local_e0 + -0x11d050);\n    pRVar34 = src_id.first;\n    do {\n      if (iVar25 == 0) break;\n      iVar25 = iVar25 + -1;\n      bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n      bVar35 = *pbVar31 < bVar27;\n      bVar37 = *pbVar31 == bVar27;\n      pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n      pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n    } while (bVar37);\n    bVar36 = false;\n    bVar35 = (!bVar35 && !bVar37) == bVar35;\n    if (!bVar35) {\n      iVar25 = 0xf;\n      pbVar31 = (byte *)(local_e0 + -0x11cf51);\n      pRVar34 = src_id.first;\n      do {\n        if (iVar25 == 0) break;\n        iVar25 = iVar25 + -1;\n        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n        bVar36 = *pbVar31 < bVar27;\n        bVar35 = *pbVar31 == bVar27;\n        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n      } while (bVar35);\n      if ((!bVar36 && !bVar35) != bVar36) {\n        if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (src_id.first != local_bc) {\n      *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78664;\n      operator_delete(*(void **)((int)puVar29 + -0x10));\n    }\n    *(Section_id **)((int)puVar29 + -0xc) = local_c4;\n    src_id.first = (Relobj *)local_c0;\n    src_id.second = (uint)symtab;\n    local_bc = *(Relobj **)(local_ec + 0x15c);\n    *(Symbols_data ***)((int)puVar29 + -0x10) = &(*(Relobj **)(local_ec + 0x15c))->sd_;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x784b0;\n    local_fc = 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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -0xc));\n    local_f8 = &local_fc->symbol_info;\n    local_104 = &local_fc->reloc_addend_size_info;\n    local_100 = &local_fc->addend_info;\n    local_f4 = &local_fc->offset_info;\n    iVar25 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  pTVar16 = local_b0;\n  if (*(int *)(iVar25 + 8) == 0) {\n    *(undefined4 *)((int)puVar29 + -4) = 0;\n    *(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)((int)puVar29 + -0xc) = 0x5c;\n    *(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */\n    *(undefined1 **)((int)puVar29 + -0x14) = &LAB_000786bc;\n    do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8));\n  }\n  if (*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 2) {\n    AVar13 = local_b0->invalid_address;\n    *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n    pcVar8 = *(code **)((int)AVar13 + 0x48);\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x7831b;\n    cVar17 = (*pcVar8)();\n    if (cVar17 != '\0') {\n      iVar25 = (int)pTVar16->invalid_address;\n      pcVar8 = *(code **)(iVar25 + 8);\n      if (pcVar8 == (code *)(local_e0 + -0x36d580)) {\n        pcVar8 = *(code **)(iVar25 + 0x4c);\n        bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);\n        bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);\n        if (bVar37) {\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x78586;\n        local_da = (bool)(*pcVar8)();\n      }\n      else {\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;\n        local_da = (bool)(*pcVar8)();\n      }\n      goto LAB_00077807;\n    }\n  }\nLAB_00077800:\n  local_da = false;\nLAB_00077807:\n  if (target != (Target_powerpc<64,_false> *)0x0) {\n    local_e8 = (_func_int_varargs **)0x0;\n    local_f0 = local_a4;\n    local_b0 = (Target_powerpc<64,_false> *)0x0;\n    local_110 = &__node_gen;\n    puVar30 = puVar29;\n    do {\n      pOVar15 = local_c0;\n      local_d8 = (param_2->namepool_).string_set_._M_h._M_buckets;\n      local_b8 = (pointer)(param_2->namepool_).string_set_._M_h._M_element_count;\n      pSVar4 = (Sized_relobj_file<64,_false> *)(param_2->namepool_).string_set_._M_h._M_bucket_count\n      ;\n      local_bc = (Relobj *)(param_2->namepool_).string_set_._M_h._M_before_begin._M_nxt;\n      if (pSVar4 < src_obj) {\n        if (src_indx == 0) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0xea;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x785a9;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        iVar25 = src_indx + (int)pSVar4 * 0x18;\n        local_b4 = (Symbol_table *)(uint)*(ushort *)(iVar25 + 6);\n        puVar29 = puVar30;\n        if (local_b4 < (Symbol_table *)0xff00) {\nLAB_000779f0:\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 != '\0') {\n            src_id.first = (Relobj *)local_c0;\n            src_id.second = (uint)local_b4;\n            *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n            *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n            local_c4 = &src_id;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a51;\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)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n            bVar35 = true;\n            if ((*(byte *)(iVar25 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n            *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a83;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if (local_b4 == (Symbol_table *)0xffff) {\n            ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start;\n            if (ppOVar20 == (pointer)0x0) {\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }\n            *(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;\n            *(Output_segment **)((int)puVar30 + -0xc) = local_c0;\n            *(pointer *)((int)puVar30 + -0x10) = ppOVar20;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;\n            local_b4 = (Symbol_table *)\n                       Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));\n            goto LAB_000779f0;\n          }\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          src_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          src_id.second = 0;\n          local_c4 = &src_id;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778b4;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          bVar35 = false;\n          if ((*(byte *)(iVar25 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778e3;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\nLAB_000778e3:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = (Relobj *)local_cc;\n          src_id.second = local_c8;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x7791e;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78648;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78155;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77975;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n          if (!bVar35) goto LAB_00077980;\n        }\n        if ((((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)) &&\n            (local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1)) &&\n           (((__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)))\n           ) {\n          local_bc = *(Relobj **)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar25 + 6);\n          *(undefined4 *)((int)puVar30 + -0xc) = 1;\n          *(undefined4 *)((int)puVar30 + -0x10) = 0;\n          __node_gen_2._M_h = (__hashtable_alloc *)&(local_bc->super_Object).compressed_sections_;\n          *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_2;\n          *(Output_segment ***)((int)puVar30 + -0x18) = &local_7c;\n          *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_2._M_h;\n          *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n          *(undefined4 *)((int)puVar30 + -0x24) = 0x77ddf;\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          puVar30 = (undefined4 *)((int)puVar30 + -4);\n        }\n        puVar29 = puVar30;\n        if (symtab != local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            puVar30[-2] = local_e0 + -0x11dc58;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x785c7;\n            do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }\n          puVar29 = puVar30;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pRVar34 = *(Relobj **)(local_ec + 0x158);\n            src_id_1.first = (Relobj *)local_c0;\n            src_id_1.second = (uint)symtab;\n            pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n            dst_id.first = (Relobj *)local_cc;\n            dst_id.second = (uint)local_b4;\n            pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n            if (pcVar5 == (char *)0x0) {\nLAB_00077ba0:\n              puVar30[-4] = &local_8c;\n              local_8c = &src_id_1;\n              puVar30[-5] = 0x77bc1;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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            iVar25 = local_ec;\n            piVar6 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            iVar7 = *piVar6;\n            puVar30[-2] = local_d0;\n            puVar30[-3] = local_d4;\n            puVar30[-4] = local_b4;\n            puVar30[-5] = local_cc;\n            puVar30[-6] = symtab;\n            puVar30[-7] = local_c0;\n            puVar30[-8] = local_ec;\n            puVar30[-9] = piVar6;\n            pcVar8 = *(code **)(iVar7 + 0x104);\n            puVar30[-10] = 0x77c37;\n            (*pcVar8)();\n            pp_Var19 = local_e8;\n            puVar29 = puVar30 + -1;\n            if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);\n      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;\n      puVar30 = puVar29;\n    } while (target != local_b0);\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_114) {\n    *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78222;\n    operator_delete(*(void **)((int)puVar29 + -0x10));\n  }\n  return;\n}\n\n" comment comment comment comment (declaration "void gold::\n     gc_process_relocs<64,_false,_(anonymous_namespace)::Target_powerpc<64,_false>,_(anonymous_namespace)::Target_powerpc<64,_false>::Scan,_gold::Default_classify_reloc<4,_64,_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_powerpc<64,_false> *target,\n               Sized_relobj_file<64,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)\n\n{\n  char *pcVar1;" primitive_type (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , identifier (ERROR ",_(anonymous_namespace)::Target_powerpc<64,_false>,_(anonymous_namespace)::Target_powerpc<64,_false>::Scan,_gold::Default_classify_reloc<4" , (function_declarator "_(anonymous_namespace)::Target_powerpc<64,_false>,_(anonymous_namespace)::Target_powerpc<64,_false>::Scan" identifier (parameter_list "(anonymous_namespace)" ( (parameter_declaration "anonymous_namespace" type_identifier) )) (ERROR "::" : :) identifier (ERROR "<64," < number_literal ,) identifier (ERROR ">," > ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))) (ERROR "::" : :) identifier (ERROR "<64," < number_literal ,) identifier (ERROR ">::" > : :) identifier) , identifier : : identifier < number_literal) , identifier , (ERROR "_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_powerpc<64,_false> *target,\n               Sized_relobj_file<64,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)\n\n{\n  char" (function_declarator "_false>_>\n               (Symbol_table *symtab,Layout *param_2,Target_powerpc<64,_false> *target,\n               Sized_relobj_file<64,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)" identifier (ERROR ">_>" > identifier >) (parameter_list "(Symbol_table *symtab,Layout *param_2,Target_powerpc<64,_false> *target,\n               Sized_relobj_file<64,_false> *src_obj,uint src_indx,uchar *prelocs,size_t reloc_count\n               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)" ( (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "Target_powerpc" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *target" type_identifier (ERROR ">" >) (pointer_declarator "*target" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *src_obj" type_identifier (ERROR ">" >) (pointer_declarator "*src_obj" * identifier)) , (parameter_declaration "uint src_indx" 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 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "bool param_9" primitive_type identifier) , (parameter_declaration "size_t param_10" primitive_type identifier) , (parameter_declaration "uchar *plocal_syms" type_identifier (pointer_declarator "*plocal_syms" * identifier)) ))) { primitive_type) (pointer_declarator "*pcVar1" * identifier) ;) (declaration "Output_data *pOVar2;" type_identifier (pointer_declarator "*pOVar2" * identifier) ;) (declaration "pointer puVar3;" type_identifier identifier ;) (expression_statement "Sized_relobj_file<64,_false> *pSVar4;" (update_expression "Sized_relobj_file<64,_false> *pSVar4" (binary_expression "Sized_relobj_file<64,_false> *pSVar4" (binary_expression "Sized_relobj_file<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pSVar4" * identifier)) --) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "_Hash_node_base *p_Var9;" type_identifier (pointer_declarator "*p_Var9" * identifier) ;) (expression_statement "Sized_relobj_file<64,_false> *pSVar10;" (update_expression "Sized_relobj_file<64,_false> *pSVar10" (binary_expression "Sized_relobj_file<64,_false> *pSVar10" (binary_expression "Sized_relobj_file<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pSVar10" * identifier)) --) ;) (declaration "pointer ppSVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "Address AVar13;" type_identifier identifier ;) (declaration "Section_id *pSVar14;" type_identifier (pointer_declarator "*pSVar14" * identifier) ;) (declaration "Output_segment *pOVar15;" type_identifier (pointer_declarator "*pOVar15" * identifier) ;) (expression_statement "Target_powerpc<64,_false> *pTVar16;" (update_expression "Target_powerpc<64,_false> *pTVar16" (binary_expression "Target_powerpc<64,_false> *pTVar16" (binary_expression "Target_powerpc<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pTVar16" * identifier)) --) ;) (declaration "char cVar17;" primitive_type identifier ;) (declaration "size_t sVar18;" primitive_type identifier ;) (declaration "_func_int_varargs **pp_Var19;" type_identifier (pointer_declarator "**pp_Var19" * (pointer_declarator "*pp_Var19" * identifier)) ;) (declaration "pointer ppOVar20;" type_identifier identifier ;) (declaration "pointer pcVar21;" type_identifier identifier ;) (declaration "Output_segment *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 uVar22;" type_identifier identifier ;) (declaration "char *pcVar23;" primitive_type (pointer_declarator "*pcVar23" * identifier) ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_02;" type_identifier identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "undefined4 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "_func_int_varargs **pp_Var32;" type_identifier (pointer_declarator "**pp_Var32" * (pointer_declarator "*pp_Var32" * identifier)) ;) (declaration "_Alloc_hider _Var33;" type_identifier identifier ;) (declaration "Relobj *pRVar34;" type_identifier (pointer_declarator "*pRVar34" * identifier) ;) (declaration "bool bVar35;" primitive_type identifier ;) (declaration "bool bVar36;" primitive_type identifier ;) (declaration "bool bVar37;" primitive_type identifier ;) (declaration "byte bVar38;" type_identifier identifier ;) (declaration "undefined8 uVar39;" type_identifier identifier ;) (declaration "undefined1 auStack_11c [8];" type_identifier (array_declarator "auStack_11c [8]" identifier [ number_literal ]) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *local_114;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *local_114;" (binary_expression "allocator<char>_>_9\n  *local_114" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *local_114" identifier * identifier)) ;)) (declaration "__node_gen_type *local_110;" type_identifier (pointer_declarator "*local_110" * identifier) ;) (declaration "Relobj *local_10c;" type_identifier (pointer_declarator "*local_10c" * identifier) ;) (declaration "Compressed_section_map *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "Reloc_addend_size_info *local_104;" type_identifier (pointer_declarator "*local_104" * identifier) ;) (declaration "Addend_info *local_100;" type_identifier (pointer_declarator "*local_100" * identifier) ;) (declaration "mapped_type *local_fc;" type_identifier (pointer_declarator "*local_fc" * identifier) ;) (declaration "Symbol_info *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "Offset_info *local_f4;" type_identifier (pointer_declarator "*local_f4" * identifier) ;) (declaration "undefined1 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "_func_int_varargs **local_e8;" type_identifier (pointer_declarator "**local_e8" * (pointer_declarator "*local_e8" * identifier)) ;) (declaration "byte *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "bool local_da;" primitive_type identifier ;) (declaration "char local_d9;" primitive_type identifier ;) (declaration "__bucket_type *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "pointer local_d0;" type_identifier identifier ;) (declaration "Output_segment *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "Section_id *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "Output_segment *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "Relobj *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "pointer local_b8;" type_identifier identifier ;) (declaration "Symbol_table *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (expression_statement "Target_powerpc<64,_false> *local_b0;" (update_expression "Target_powerpc<64,_false> *local_b0" (binary_expression "Target_powerpc<64,_false> *local_b0" (binary_expression "Target_powerpc<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*local_b0" * identifier)) --) ;) (declaration "_Hash_node_base *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined1 local_a4 [8];" type_identifier (array_declarator "local_a4 [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 "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "Section_id *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "Section_id *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "Output_segment *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "Symbol_table *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "Output_segment *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "Section_id src_id_1;" type_identifier identifier ;) (declaration "Section_id dst_id;" type_identifier identifier ;) (declaration "Scan scan;" type_identifier identifier ;) (declaration "string src_section_name;" type_identifier identifier ;) (declaration "Section_id src_id;" type_identifier identifier ;) (declaration "Relobj *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "_Alloc_hider local_28;" type_identifier identifier ;) (expression_statement "bVar38 = 0;" (assignment_expression "bVar38 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = __x86_get_pc_thunk_di();" (assignment_expression "uVar39 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_b0 = (Target_powerpc<64,_false> *)((ulonglong)uVar39 >> 0x20);" (assignment_expression "local_b0 = (Target_powerpc<64,_false> *)((ulonglong)uVar39 >> 0x20)" identifier = (call_expression "(Target_powerpc<64,_false> *)((ulonglong)uVar39 >> 0x20)" (parenthesized_expression "(Target_powerpc<64,_false> *)" ( (comma_expression "Target_powerpc<64,_false> *" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "((ulonglong)uVar39 >> 0x20)" ( (binary_expression "(ulonglong)uVar39 >> 0x20" (cast_expression "(ulonglong)uVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_ec = (int)uVar39;" (assignment_expression "local_ec = (int)uVar39" identifier = (cast_expression "(int)uVar39" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_e0 = unaff_EDI + 0x39c927;" (assignment_expression "local_e0 = unaff_EDI + 0x39c927" identifier = (binary_expression "unaff_EDI + 0x39c927" identifier + number_literal)) ;) (expression_statement "local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;" (assignment_expression "local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6" identifier = (binary_expression "BYTE_ARRAY_0039ce09 + unaff_EDI + 6" (binary_expression "BYTE_ARRAY_0039ce09 + unaff_EDI" identifier + identifier) + number_literal)) ;) (if_statement "if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */\n    do_gold_unreachable((char *)(unaff_EDI + 0x26ab94),0x5c,&UNK_0027eccf + unaff_EDI);\n  }" if (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) == 0" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */\n    do_gold_unreachable((char *)(unaff_EDI + 0x26ab94),0x5c,&UNK_0027eccf + unaff_EDI);\n  }" { comment comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x26ab94),0x5c,&UNK_0027eccf + unaff_EDI);" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x26ab94),0x5c,&UNK_0027eccf + unaff_EDI)" identifier (argument_list "((char *)(unaff_EDI + 0x26ab94),0x5c,&UNK_0027eccf + unaff_EDI)" ( (cast_expression "(char *)(unaff_EDI + 0x26ab94)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x26ab94)" ( (binary_expression "unaff_EDI + 0x26ab94" identifier + number_literal) ))) , number_literal , (binary_expression "&UNK_0027eccf + unaff_EDI" (pointer_expression "&UNK_0027eccf" & identifier) + identifier) ))) ;) })) (expression_statement "local_c0 = extraout_ECX;" (assignment_expression "local_c0 = extraout_ECX" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = &src_section_name.field_2;\n    src_section_name._M_dataplus._M_p = (pointer)local_114;\n                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar29 = (undefined4 *)auStack_11c;\n    uVar22 = extraout_ECX_01;\n  }\n  else {\n    pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_start[0x10];\n    if (pOVar2 == (Output_data *)(&UNK_00039d57 + unaff_EDI)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      elfcpp::Elf_file<64,_false,_gold::Object>::section_name\n                ((Elf_file<64,_false,_gold::Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab);\n      uVar22 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);\n      uVar22 = extraout_ECX_02;\n    }\n    puVar29 = (undefined4 *)&stack0xfffffee0;\n    local_114 = &src_section_name.field_2;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) + 0x5934)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) + 0x5934" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_114 = &src_section_name.field_2;\n    src_section_name._M_dataplus._M_p = (pointer)local_114;\n                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar29 = (undefined4 *)auStack_11c;\n    uVar22 = extraout_ECX_01;\n  }" { (expression_statement "local_114 = &src_section_name.field_2;" (assignment_expression "local_114 = &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_114;" (assignment_expression "src_section_name._M_dataplus._M_p = (pointer)local_114" (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_114" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&src_section_name,unaff_EDI + 0x299add,unaff_EDI + 0x299add);" 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,unaff_EDI + 0x299add,unaff_EDI + 0x299add);" (binary_expression "_M_construct<char_const*>(&src_section_name,unaff_EDI + 0x299add,unaff_EDI + 0x299add)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&src_section_name,unaff_EDI + 0x299add,unaff_EDI + 0x299add)" ( (comma_expression "&src_section_name,unaff_EDI + 0x299add,unaff_EDI + 0x299add" (pointer_expression "&src_section_name" & identifier) , (comma_expression "unaff_EDI + 0x299add,unaff_EDI + 0x299add" (binary_expression "unaff_EDI + 0x299add" identifier + number_literal) , (binary_expression "unaff_EDI + 0x299add" identifier + number_literal))) ))) ;)) (expression_statement "puVar29 = (undefined4 *)auStack_11c;" (assignment_expression "puVar29 = (undefined4 *)auStack_11c" identifier = (cast_expression "(undefined4 *)auStack_11c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar22 = extraout_ECX_01;" (assignment_expression "uVar22 = extraout_ECX_01" identifier = identifier) ;) }) (else_clause "else {\n    pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_start[0x10];\n    if (pOVar2 == (Output_data *)(&UNK_00039d57 + unaff_EDI)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      elfcpp::Elf_file<64,_false,_gold::Object>::section_name\n                ((Elf_file<64,_false,_gold::Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab);\n      uVar22 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);\n      uVar22 = extraout_ECX_02;\n    }\n    puVar29 = (undefined4 *)&stack0xfffffee0;\n    local_114 = &src_section_name.field_2;\n  }" else (compound_statement "{\n    pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_start[0x10];\n    if (pOVar2 == (Output_data *)(&UNK_00039d57 + unaff_EDI)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      elfcpp::Elf_file<64,_false,_gold::Object>::section_name\n                ((Elf_file<64,_false,_gold::Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab);\n      uVar22 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);\n      uVar22 = extraout_ECX_02;\n    }\n    puVar29 = (undefined4 *)&stack0xfffffee0;\n    local_114 = &src_section_name.field_2;\n  }" { (expression_statement "pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_start[0x10];" (subscript_expression "pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_start[0x10]" (field_expression "pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n             _M_start" (field_expression "pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold::Output_data*,_std" (assignment_expression "pOVar2 = extraout_ECX->output_lists_[0].\n             super__Vector_base<gold" identifier = (binary_expression "extraout_ECX->output_lists_[0].\n             super__Vector_base<gold" (field_expression "extraout_ECX->output_lists_[0].\n             super__Vector_base" (subscript_expression "extraout_ECX->output_lists_[0]" (field_expression "extraout_ECX->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 (pOVar2 == (Output_data *)(&UNK_00039d57 + unaff_EDI)) {\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      elfcpp::Elf_file<64,_false,_gold::Object>::section_name\n                ((Elf_file<64,_false,_gold::Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab);\n      uVar22 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);\n      uVar22 = extraout_ECX_02;\n    }" if (parenthesized_expression "(pOVar2 == (Output_data *)(&UNK_00039d57 + unaff_EDI))" ( (binary_expression "pOVar2 == (Output_data *)(&UNK_00039d57 + unaff_EDI)" identifier == (cast_expression "(Output_data *)(&UNK_00039d57 + unaff_EDI)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00039d57 + unaff_EDI)" ( (binary_expression "&UNK_00039d57 + unaff_EDI" (pointer_expression "&UNK_00039d57" & identifier) + identifier) )))) )) (compound_statement "{\n                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */\n      elfcpp::Elf_file<64,_false,_gold::Object>::section_name\n                ((Elf_file<64,_false,_gold::Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab);\n      uVar22 = extraout_ECX_00;\n    }" { comment (labeled_statement "elfcpp::Elf_file<64,_false,_gold::Object>::section_name\n                ((Elf_file<64,_false,_gold::Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab);" statement_identifier (ERROR "::Elf_file<64,_false,_gold::Object>::section_name\n                ((Elf_file<64,_false,_gold:" : : (comma_expression "Elf_file<64,_false,_gold" (binary_expression "Elf_file<64" identifier < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) : : identifier > : : identifier ( ( (comma_expression "Elf_file<64,_false,_gold" (binary_expression "Elf_file<64" identifier < number_literal) , (comma_expression "_false,_gold" identifier , identifier)) :) : (expression_statement "Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab);" (comma_expression "Object> *)(extraout_ECX->output_lists_ + 0xc),\n                 (uint)symtab" (binary_expression "Object> *)(extraout_ECX->output_lists_ + 0xc" identifier > (binary_expression "*)(extraout_ECX->output_lists_ + 0xc" (pointer_expression "*)(extraout_ECX->output_lists_" * (ERROR ")(" ) () (field_expression "extraout_ECX->output_lists_" identifier -> field_identifier)) + number_literal)) (ERROR ")" )) , (cast_expression "(uint)symtab" ( (type_descriptor "uint" type_identifier) ) identifier)) (ERROR ")" )) ;)) (expression_statement "uVar22 = extraout_ECX_00;" (assignment_expression "uVar22 = extraout_ECX_00" identifier = identifier) ;) }) (else_clause "else {\n      (*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);\n      uVar22 = extraout_ECX_02;\n    }" else (compound_statement "{\n      (*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);\n      uVar22 = extraout_ECX_02;\n    }" { (expression_statement "(*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab);" (call_expression "(*(code *)pOVar2)(&src_section_name,extraout_ECX,symtab)" (parenthesized_expression "(*(code *)pOVar2)" ( (pointer_expression "*(code *)pOVar2" * (cast_expression "(code *)pOVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&src_section_name,extraout_ECX,symtab)" ( (pointer_expression "&src_section_name" & identifier) , identifier , identifier ))) ;) (expression_statement "uVar22 = extraout_ECX_02;" (assignment_expression "uVar22 = extraout_ECX_02" identifier = identifier) ;) }))) (expression_statement "puVar29 = (undefined4 *)&stack0xfffffee0;" (assignment_expression "puVar29 = (undefined4 *)&stack0xfffffee0" identifier = (cast_expression "(undefined4 *)&stack0xfffffee0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xfffffee0" & identifier))) ;) (expression_statement "local_114 = &src_section_name.field_2;" (assignment_expression "local_114 = &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 "_Var33._M_p = src_section_name._M_dataplus._M_p;" (assignment_expression "_Var33._M_p = src_section_name._M_dataplus._M_p" (field_expression "_Var33._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 "iVar25 = *(int *)local_e4;" (assignment_expression "iVar25 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(iVar25 + 8) == 0) {\n    *(undefined4 *)((int)puVar29 + -4) = uVar22;\n    *(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)((int)puVar29 + -0xc) = 0x5c;\n    *(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78688;\n    do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8));\n  }" if (parenthesized_expression "(*(int *)(iVar25 + 8) == 0)" ( (binary_expression "*(int *)(iVar25 + 8) == 0" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)puVar29 + -4) = uVar22;\n    *(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)((int)puVar29 + -0xc) = 0x5c;\n    *(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78688;\n    do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8));\n  }" { (expression_statement "*(undefined4 *)((int)puVar29 + -4) = uVar22;" (assignment_expression "*(undefined4 *)((int)puVar29 + -4) = uVar22" (pointer_expression "*(undefined4 *)((int)puVar29 + -4)" * (cast_expression "(undefined4 *)((int)puVar29 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -4)" ( (binary_expression "(int)puVar29 + -4" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)((int)puVar29 + -8)" * (cast_expression "(int *)((int)puVar29 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -8)" ( (binary_expression "(int)puVar29 + -8" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar29 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)puVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)((int)puVar29 + -0x10)" * (cast_expression "(int *)((int)puVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar29 + -0x14) = 0x78688;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x78688" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8))" identifier (argument_list "(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8))" ( (pointer_expression "*(char **)((int)puVar29 + -0x10)" * (cast_expression "(char **)((int)puVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar29 + -0xc)" * (cast_expression "(int *)((int)puVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar29 + -8)" * (cast_expression "(char **)((int)puVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -8)" ( (binary_expression "(int)puVar29 + -8" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = (Reloc_addend_size_info *)0x0;\n    local_f4 = (Offset_info *)0x0;\n    local_100 = (Addend_info *)0x0;\n    local_f8 = (Symbol_info *)0x0;\n    local_fc = (mapped_type *)0x0;\n  }\n  else {\n    local_bc = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar21 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78417;\n      sVar18 = strlen(*(char **)((int)puVar29 + -0x10));\n      pcVar21 = _Var33._M_p + sVar18;\n    }\n    *(undefined4 *)((int)puVar29 + -4) = 0;\n    *(pointer *)((int)puVar29 + -8) = pcVar21;\n    local_c4 = &src_id;\n    *(pointer *)((int)puVar29 + -0xc) = _Var33._M_p;\n    *(Section_id **)((int)puVar29 + -0x10) = local_c4;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x7842f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar25 = 5;\n    bVar35 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar29 + -0x10);\n    bVar37 = puVar29 == (undefined4 *)0x0;\n    pbVar31 = (byte *)(local_e0 + -0x11d050);\n    pRVar34 = src_id.first;\n    do {\n      if (iVar25 == 0) break;\n      iVar25 = iVar25 + -1;\n      bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n      bVar35 = *pbVar31 < bVar27;\n      bVar37 = *pbVar31 == bVar27;\n      pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n      pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n    } while (bVar37);\n    bVar36 = false;\n    bVar35 = (!bVar35 && !bVar37) == bVar35;\n    if (!bVar35) {\n      iVar25 = 0xf;\n      pbVar31 = (byte *)(local_e0 + -0x11cf51);\n      pRVar34 = src_id.first;\n      do {\n        if (iVar25 == 0) break;\n        iVar25 = iVar25 + -1;\n        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n        bVar36 = *pbVar31 < bVar27;\n        bVar35 = *pbVar31 == bVar27;\n        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n      } while (bVar35);\n      if ((!bVar36 && !bVar35) != bVar36) {\n        if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (src_id.first != local_bc) {\n      *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78664;\n      operator_delete(*(void **)((int)puVar29 + -0x10));\n    }\n    *(Section_id **)((int)puVar29 + -0xc) = local_c4;\n    src_id.first = (Relobj *)local_c0;\n    src_id.second = (uint)symtab;\n    local_bc = *(Relobj **)(local_ec + 0x15c);\n    *(Symbols_data ***)((int)puVar29 + -0x10) = &(*(Relobj **)(local_ec + 0x15c))->sd_;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x784b0;\n    local_fc = 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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -0xc));\n    local_f8 = &local_fc->symbol_info;\n    local_104 = &local_fc->reloc_addend_size_info;\n    local_100 = &local_fc->addend_info;\n    local_f4 = &local_fc->offset_info;\n    iVar25 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar25 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar25 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar25 + 8) + 0x5934" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = (Reloc_addend_size_info *)0x0;\n    local_f4 = (Offset_info *)0x0;\n    local_100 = (Addend_info *)0x0;\n    local_f8 = (Symbol_info *)0x0;\n    local_fc = (mapped_type *)0x0;\n  }" { (labeled_statement "LAB_000777af:\n    local_d9 = '\0';" statement_identifier : (expression_statement "local_d9 = '\0';" (assignment_expression "local_d9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_104 = (Reloc_addend_size_info *)0x0;" (assignment_expression "local_104 = (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_f4 = (Offset_info *)0x0;" (assignment_expression "local_f4 = (Offset_info *)0x0" identifier = (cast_expression "(Offset_info *)0x0" ( (type_descriptor "Offset_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_100 = (Addend_info *)0x0;" (assignment_expression "local_100 = (Addend_info *)0x0" identifier = (cast_expression "(Addend_info *)0x0" ( (type_descriptor "Addend_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f8 = (Symbol_info *)0x0;" (assignment_expression "local_f8 = (Symbol_info *)0x0" identifier = (cast_expression "(Symbol_info *)0x0" ( (type_descriptor "Symbol_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_fc = (mapped_type *)0x0;" (assignment_expression "local_fc = (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_bc = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar21 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78417;\n      sVar18 = strlen(*(char **)((int)puVar29 + -0x10));\n      pcVar21 = _Var33._M_p + sVar18;\n    }\n    *(undefined4 *)((int)puVar29 + -4) = 0;\n    *(pointer *)((int)puVar29 + -8) = pcVar21;\n    local_c4 = &src_id;\n    *(pointer *)((int)puVar29 + -0xc) = _Var33._M_p;\n    *(Section_id **)((int)puVar29 + -0x10) = local_c4;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x7842f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar25 = 5;\n    bVar35 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar29 + -0x10);\n    bVar37 = puVar29 == (undefined4 *)0x0;\n    pbVar31 = (byte *)(local_e0 + -0x11d050);\n    pRVar34 = src_id.first;\n    do {\n      if (iVar25 == 0) break;\n      iVar25 = iVar25 + -1;\n      bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n      bVar35 = *pbVar31 < bVar27;\n      bVar37 = *pbVar31 == bVar27;\n      pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n      pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n    } while (bVar37);\n    bVar36 = false;\n    bVar35 = (!bVar35 && !bVar37) == bVar35;\n    if (!bVar35) {\n      iVar25 = 0xf;\n      pbVar31 = (byte *)(local_e0 + -0x11cf51);\n      pRVar34 = src_id.first;\n      do {\n        if (iVar25 == 0) break;\n        iVar25 = iVar25 + -1;\n        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n        bVar36 = *pbVar31 < bVar27;\n        bVar35 = *pbVar31 == bVar27;\n        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n      } while (bVar35);\n      if ((!bVar36 && !bVar35) != bVar36) {\n        if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (src_id.first != local_bc) {\n      *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78664;\n      operator_delete(*(void **)((int)puVar29 + -0x10));\n    }\n    *(Section_id **)((int)puVar29 + -0xc) = local_c4;\n    src_id.first = (Relobj *)local_c0;\n    src_id.second = (uint)symtab;\n    local_bc = *(Relobj **)(local_ec + 0x15c);\n    *(Symbols_data ***)((int)puVar29 + -0x10) = &(*(Relobj **)(local_ec + 0x15c))->sd_;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x784b0;\n    local_fc = 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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -0xc));\n    local_f8 = &local_fc->symbol_info;\n    local_104 = &local_fc->reloc_addend_size_info;\n    local_100 = &local_fc->addend_info;\n    local_f4 = &local_fc->offset_info;\n    iVar25 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" else (compound_statement "{\n    local_bc = (Relobj *)&local_2c;\n    src_id.first = (Relobj *)&local_2c;\n    pcVar21 = (pointer)0xffffffff;\n    if (src_section_name._M_dataplus._M_p != (pointer)0x0) {\n      *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78417;\n      sVar18 = strlen(*(char **)((int)puVar29 + -0x10));\n      pcVar21 = _Var33._M_p + sVar18;\n    }\n    *(undefined4 *)((int)puVar29 + -4) = 0;\n    *(pointer *)((int)puVar29 + -8) = pcVar21;\n    local_c4 = &src_id;\n    *(pointer *)((int)puVar29 + -0xc) = _Var33._M_p;\n    *(Section_id **)((int)puVar29 + -0x10) = local_c4;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x7842f;\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>();\n    iVar25 = 5;\n    bVar35 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar29 + -0x10);\n    bVar37 = puVar29 == (undefined4 *)0x0;\n    pbVar31 = (byte *)(local_e0 + -0x11d050);\n    pRVar34 = src_id.first;\n    do {\n      if (iVar25 == 0) break;\n      iVar25 = iVar25 + -1;\n      bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n      bVar35 = *pbVar31 < bVar27;\n      bVar37 = *pbVar31 == bVar27;\n      pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n      pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n    } while (bVar37);\n    bVar36 = false;\n    bVar35 = (!bVar35 && !bVar37) == bVar35;\n    if (!bVar35) {\n      iVar25 = 0xf;\n      pbVar31 = (byte *)(local_e0 + -0x11cf51);\n      pRVar34 = src_id.first;\n      do {\n        if (iVar25 == 0) break;\n        iVar25 = iVar25 + -1;\n        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n        bVar36 = *pbVar31 < bVar27;\n        bVar35 = *pbVar31 == bVar27;\n        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n      } while (bVar35);\n      if ((!bVar36 && !bVar35) != bVar36) {\n        if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (src_id.first != local_bc) {\n      *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78664;\n      operator_delete(*(void **)((int)puVar29 + -0x10));\n    }\n    *(Section_id **)((int)puVar29 + -0xc) = local_c4;\n    src_id.first = (Relobj *)local_c0;\n    src_id.second = (uint)symtab;\n    local_bc = *(Relobj **)(local_ec + 0x15c);\n    *(Symbols_data ***)((int)puVar29 + -0x10) = &(*(Relobj **)(local_ec + 0x15c))->sd_;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x784b0;\n    local_fc = 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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -0xc));\n    local_f8 = &local_fc->symbol_info;\n    local_104 = &local_fc->reloc_addend_size_info;\n    local_100 = &local_fc->addend_info;\n    local_f4 = &local_fc->offset_info;\n    iVar25 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" { (expression_statement "local_bc = (Relobj *)&local_2c;" (assignment_expression "local_bc = (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 "pcVar21 = (pointer)0xffffffff;" (assignment_expression "pcVar21 = (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)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78417;\n      sVar18 = strlen(*(char **)((int)puVar29 + -0x10));\n      pcVar21 = _Var33._M_p + sVar18;\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)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78417;\n      sVar18 = strlen(*(char **)((int)puVar29 + -0x10));\n      pcVar21 = _Var33._M_p + sVar18;\n    }" { (expression_statement "*(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar29 + -0x10)" * (cast_expression "(pointer *)((int)puVar29 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (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)puVar29 + -0x14) = 0x78417;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x78417" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar18 = strlen(*(char **)((int)puVar29 + -0x10));" (assignment_expression "sVar18 = strlen(*(char **)((int)puVar29 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)puVar29 + -0x10))" identifier (argument_list "(*(char **)((int)puVar29 + -0x10))" ( (pointer_expression "*(char **)((int)puVar29 + -0x10)" * (cast_expression "(char **)((int)puVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar21 = _Var33._M_p + sVar18;" (assignment_expression "pcVar21 = _Var33._M_p + sVar18" identifier = (binary_expression "_Var33._M_p + sVar18" (field_expression "_Var33._M_p" identifier . field_identifier) + identifier)) ;) })) (expression_statement "*(undefined4 *)((int)puVar29 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar29 + -4) = 0" (pointer_expression "*(undefined4 *)((int)puVar29 + -4)" * (cast_expression "(undefined4 *)((int)puVar29 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -4)" ( (binary_expression "(int)puVar29 + -4" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)puVar29 + -8) = pcVar21;" (assignment_expression "*(pointer *)((int)puVar29 + -8) = pcVar21" (pointer_expression "*(pointer *)((int)puVar29 + -8)" * (cast_expression "(pointer *)((int)puVar29 + -8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -8)" ( (binary_expression "(int)puVar29 + -8" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = &src_id;" (assignment_expression "local_c4 = &src_id" identifier = (pointer_expression "&src_id" & identifier)) ;) (expression_statement "*(pointer *)((int)puVar29 + -0xc) = _Var33._M_p;" (assignment_expression "*(pointer *)((int)puVar29 + -0xc) = _Var33._M_p" (pointer_expression "*(pointer *)((int)puVar29 + -0xc)" * (cast_expression "(pointer *)((int)puVar29 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "_Var33._M_p" identifier . field_identifier)) ;) (expression_statement "*(Section_id **)((int)puVar29 + -0x10) = local_c4;" (assignment_expression "*(Section_id **)((int)puVar29 + -0x10) = local_c4" (pointer_expression "*(Section_id **)((int)puVar29 + -0x10)" * (cast_expression "(Section_id **)((int)puVar29 + -0x10)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar29 + -0x14) = 0x7842f;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x7842f" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (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 "iVar25 = 5;" (assignment_expression "iVar25 = 5" identifier = number_literal) ;) (expression_statement "bVar35 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar29 + -0x10);" (assignment_expression "bVar35 = (undefined1 *)0xffffffef < (undefined1 *)((int)puVar29 + -0x10)" identifier = (binary_expression "(undefined1 *)0xffffffef < (undefined1 *)((int)puVar29 + -0x10)" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)puVar29 + -0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar37 = puVar29 == (undefined4 *)0x0;" (assignment_expression "bVar37 = puVar29 == (undefined4 *)0x0" identifier = (binary_expression "puVar29 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11d050);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11d050)" identifier = (cast_expression "(byte *)(local_e0 + -0x11d050)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11d050)" ( (binary_expression "local_e0 + -0x11d050" identifier + number_literal) )))) ;) (expression_statement "pRVar34 = src_id.first;" (assignment_expression "pRVar34 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n      if (iVar25 == 0) break;\n      iVar25 = iVar25 + -1;\n      bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n      bVar35 = *pbVar31 < bVar27;\n      bVar37 = *pbVar31 == bVar27;\n      pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n      pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n    } while (bVar37);" do (compound_statement "{\n      if (iVar25 == 0) break;\n      iVar25 = iVar25 + -1;\n      bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n      bVar35 = *pbVar31 < bVar27;\n      bVar37 = *pbVar31 == bVar27;\n      pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n      pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n    }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;" (assignment_expression "bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar34->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar34->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar34->super_Object)._vptr_Object" & (field_expression "(pRVar34->super_Object)._vptr_Object" (parenthesized_expression "(pRVar34->super_Object)" ( (field_expression "pRVar34->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar35 = *pbVar31 < bVar27;" (assignment_expression "bVar35 = *pbVar31 < bVar27" identifier = (binary_expression "*pbVar31 < bVar27" (pointer_expression "*pbVar31" * identifier) < identifier)) ;) (expression_statement "bVar37 = *pbVar31 == bVar27;" (assignment_expression "bVar37 = *pbVar31 == bVar27" identifier = (binary_expression "*pbVar31 == bVar27" (pointer_expression "*pbVar31" * identifier) == identifier)) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);" (assignment_expression "pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar34 + (uint)bVar38 * -2 + 1)" ( (binary_expression "(int)pRVar34 + (uint)bVar38 * -2 + 1" (binary_expression "(int)pRVar34 + (uint)bVar38 * -2" (cast_expression "(int)pRVar34" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "bVar35 = (!bVar35 && !bVar37) == bVar35;" (assignment_expression "bVar35 = (!bVar35 && !bVar37) == bVar35" identifier = (binary_expression "(!bVar35 && !bVar37) == bVar35" (parenthesized_expression "(!bVar35 && !bVar37)" ( (binary_expression "!bVar35 && !bVar37" (unary_expression "!bVar35" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar35) {\n      iVar25 = 0xf;\n      pbVar31 = (byte *)(local_e0 + -0x11cf51);\n      pRVar34 = src_id.first;\n      do {\n        if (iVar25 == 0) break;\n        iVar25 = iVar25 + -1;\n        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n        bVar36 = *pbVar31 < bVar27;\n        bVar35 = *pbVar31 == bVar27;\n        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n      } while (bVar35);\n      if ((!bVar36 && !bVar35) != bVar36) {\n        if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }" if (parenthesized_expression "(!bVar35)" ( (unary_expression "!bVar35" ! identifier) )) (compound_statement "{\n      iVar25 = 0xf;\n      pbVar31 = (byte *)(local_e0 + -0x11cf51);\n      pRVar34 = src_id.first;\n      do {\n        if (iVar25 == 0) break;\n        iVar25 = iVar25 + -1;\n        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n        bVar36 = *pbVar31 < bVar27;\n        bVar35 = *pbVar31 == bVar27;\n        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n      } while (bVar35);\n      if ((!bVar36 && !bVar35) != bVar36) {\n        if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }" { (expression_statement "iVar25 = 0xf;" (assignment_expression "iVar25 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11cf51);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11cf51)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf51)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf51)" ( (binary_expression "local_e0 + -0x11cf51" identifier + number_literal) )))) ;) (expression_statement "pRVar34 = src_id.first;" (assignment_expression "pRVar34 = src_id.first" identifier = (field_expression "src_id.first" identifier . field_identifier)) ;) (do_statement "do {\n        if (iVar25 == 0) break;\n        iVar25 = iVar25 + -1;\n        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n        bVar36 = *pbVar31 < bVar27;\n        bVar35 = *pbVar31 == bVar27;\n        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n      } while (bVar35);" do (compound_statement "{\n        if (iVar25 == 0) break;\n        iVar25 = iVar25 + -1;\n        bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;\n        bVar36 = *pbVar31 < bVar27;\n        bVar35 = *pbVar31 == bVar27;\n        pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n        pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);\n      }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object;" (assignment_expression "bVar27 = *(byte *)&(pRVar34->super_Object)._vptr_Object" identifier = (pointer_expression "*(byte *)&(pRVar34->super_Object)._vptr_Object" * (cast_expression "(byte *)&(pRVar34->super_Object)._vptr_Object" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar34->super_Object)._vptr_Object" & (field_expression "(pRVar34->super_Object)._vptr_Object" (parenthesized_expression "(pRVar34->super_Object)" ( (field_expression "pRVar34->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "bVar36 = *pbVar31 < bVar27;" (assignment_expression "bVar36 = *pbVar31 < bVar27" identifier = (binary_expression "*pbVar31 < bVar27" (pointer_expression "*pbVar31" * identifier) < identifier)) ;) (expression_statement "bVar35 = *pbVar31 == bVar27;" (assignment_expression "bVar35 = *pbVar31 == bVar27" identifier = (binary_expression "*pbVar31 == bVar27" (pointer_expression "*pbVar31" * identifier) == identifier)) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1);" (assignment_expression "pRVar34 = (Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1)" identifier = (cast_expression "(Relobj *)((int)pRVar34 + (uint)bVar38 * -2 + 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pRVar34 + (uint)bVar38 * -2 + 1)" ( (binary_expression "(int)pRVar34 + (uint)bVar38 * -2 + 1" (binary_expression "(int)pRVar34 + (uint)bVar38 * -2" (cast_expression "(int)pRVar34" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar35)" ( identifier )) ;) (if_statement "if ((!bVar36 && !bVar35) != bVar36) {\n        if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }" if (parenthesized_expression "((!bVar36 && !bVar35) != bVar36)" ( (binary_expression "(!bVar36 && !bVar35) != bVar36" (parenthesized_expression "(!bVar36 && !bVar35)" ( (binary_expression "!bVar36 && !bVar35" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar35" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }" { (if_statement "if (src_id.first == local_bc) {\n          iVar25 = *(int *)local_e4;\n        }\n        else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }" if (parenthesized_expression "(src_id.first == local_bc)" ( (binary_expression "src_id.first == local_bc" (field_expression "src_id.first" identifier . field_identifier) == identifier) )) (compound_statement "{\n          iVar25 = *(int *)local_e4;\n        }" { (expression_statement "iVar25 = *(int *)local_e4;" (assignment_expression "iVar25 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }" else (compound_statement "{\n          *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n          *(undefined4 *)((int)puVar29 + -0x14) = 0x78539;\n          operator_delete(*(void **)((int)puVar29 + -0x10));\n          iVar25 = *(int *)local_e4;\n        }" { (expression_statement "*(Relobj **)((int)puVar29 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)puVar29 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)puVar29 + -0x10)" * (cast_expression "(Relobj **)((int)puVar29 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar29 + -0x14) = 0x78539;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x78539" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar29 + -0x10));" (call_expression "operator_delete(*(void **)((int)puVar29 + -0x10))" identifier (argument_list "(*(void **)((int)puVar29 + -0x10))" ( (pointer_expression "*(void **)((int)puVar29 + -0x10)" * (cast_expression "(void **)((int)puVar29 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "iVar25 = *(int *)local_e4;" (assignment_expression "iVar25 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (goto_statement "goto LAB_000777af;" goto statement_identifier ;) })) })) (if_statement "if (src_id.first != local_bc) {\n      *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78664;\n      operator_delete(*(void **)((int)puVar29 + -0x10));\n    }" if (parenthesized_expression "(src_id.first != local_bc)" ( (binary_expression "src_id.first != local_bc" (field_expression "src_id.first" identifier . field_identifier) != identifier) )) (compound_statement "{\n      *(Relobj **)((int)puVar29 + -0x10) = src_id.first;\n      *(undefined4 *)((int)puVar29 + -0x14) = 0x78664;\n      operator_delete(*(void **)((int)puVar29 + -0x10));\n    }" { (expression_statement "*(Relobj **)((int)puVar29 + -0x10) = src_id.first;" (assignment_expression "*(Relobj **)((int)puVar29 + -0x10) = src_id.first" (pointer_expression "*(Relobj **)((int)puVar29 + -0x10)" * (cast_expression "(Relobj **)((int)puVar29 + -0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar29 + -0x14) = 0x78664;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x78664" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar29 + -0x10));" (call_expression "operator_delete(*(void **)((int)puVar29 + -0x10))" identifier (argument_list "(*(void **)((int)puVar29 + -0x10))" ( (pointer_expression "*(void **)((int)puVar29 + -0x10)" * (cast_expression "(void **)((int)puVar29 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(Section_id **)((int)puVar29 + -0xc) = local_c4;" (assignment_expression "*(Section_id **)((int)puVar29 + -0xc) = local_c4" (pointer_expression "*(Section_id **)((int)puVar29 + -0xc)" * (cast_expression "(Section_id **)((int)puVar29 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = (Relobj *)local_c0;" (assignment_expression "src_id.first = (Relobj *)local_c0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_c0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = (uint)symtab;" (assignment_expression "src_id.second = (uint)symtab" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)symtab" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_bc = *(Relobj **)(local_ec + 0x15c);" (assignment_expression "local_bc = *(Relobj **)(local_ec + 0x15c)" identifier = (pointer_expression "*(Relobj **)(local_ec + 0x15c)" * (cast_expression "(Relobj **)(local_ec + 0x15c)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(Symbols_data ***)((int)puVar29 + -0x10) = &(*(Relobj **)(local_ec + 0x15c))->sd_;" (assignment_expression "*(Symbols_data ***)((int)puVar29 + -0x10) = &(*(Relobj **)(local_ec + 0x15c))->sd_" (pointer_expression "*(Symbols_data ***)((int)puVar29 + -0x10)" * (cast_expression "(Symbols_data ***)((int)puVar29 + -0x10)" ( (type_descriptor "Symbols_data ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&(*(Relobj **)(local_ec + 0x15c))->sd_" & (field_expression "(*(Relobj **)(local_ec + 0x15c))->sd_" (parenthesized_expression "(*(Relobj **)(local_ec + 0x15c))" ( (pointer_expression "*(Relobj **)(local_ec + 0x15c)" * (cast_expression "(Relobj **)(local_ec + 0x15c)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) )))) )) -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)puVar29 + -0x14) = 0x784b0;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x784b0" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_fc = 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_fc = 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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -0x10),*(key_type **)((int)puVar29 + -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)puVar29 + -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)puVar29 + -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)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(key_type **)((int)puVar29 + -0xc)" * (cast_expression "(key_type **)((int)puVar29 + -0xc)" ( (type_descriptor "key_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))))) ;))))) (expression_statement "local_f8 = &local_fc->symbol_info;" (assignment_expression "local_f8 = &local_fc->symbol_info" identifier = (pointer_expression "&local_fc->symbol_info" & (field_expression "local_fc->symbol_info" identifier -> field_identifier))) ;) (expression_statement "local_104 = &local_fc->reloc_addend_size_info;" (assignment_expression "local_104 = &local_fc->reloc_addend_size_info" identifier = (pointer_expression "&local_fc->reloc_addend_size_info" & (field_expression "local_fc->reloc_addend_size_info" identifier -> field_identifier))) ;) (expression_statement "local_100 = &local_fc->addend_info;" (assignment_expression "local_100 = &local_fc->addend_info" identifier = (pointer_expression "&local_fc->addend_info" & (field_expression "local_fc->addend_info" identifier -> field_identifier))) ;) (expression_statement "local_f4 = &local_fc->offset_info;" (assignment_expression "local_f4 = &local_fc->offset_info" identifier = (pointer_expression "&local_fc->offset_info" & (field_expression "local_fc->offset_info" identifier -> field_identifier))) ;) (expression_statement "iVar25 = *(int *)local_e4;" (assignment_expression "iVar25 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_d9 = '\x01';" (assignment_expression "local_d9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "pTVar16 = local_b0;" (assignment_expression "pTVar16 = local_b0" identifier = identifier) ;) (if_statement "if (*(int *)(iVar25 + 8) == 0) {\n    *(undefined4 *)((int)puVar29 + -4) = 0;\n    *(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)((int)puVar29 + -0xc) = 0x5c;\n    *(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */\n    *(undefined1 **)((int)puVar29 + -0x14) = &LAB_000786bc;\n    do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8));\n  }" if (parenthesized_expression "(*(int *)(iVar25 + 8) == 0)" ( (binary_expression "*(int *)(iVar25 + 8) == 0" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)puVar29 + -4) = 0;\n    *(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)((int)puVar29 + -0xc) = 0x5c;\n    *(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */\n    *(undefined1 **)((int)puVar29 + -0x14) = &LAB_000786bc;\n    do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8));\n  }" { (expression_statement "*(undefined4 *)((int)puVar29 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar29 + -4) = 0" (pointer_expression "*(undefined4 *)((int)puVar29 + -4)" * (cast_expression "(undefined4 *)((int)puVar29 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -4)" ( (binary_expression "(int)puVar29 + -4" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)((int)puVar29 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)((int)puVar29 + -8)" * (cast_expression "(int *)((int)puVar29 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -8)" ( (binary_expression "(int)puVar29 + -8" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar29 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)puVar29 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar29 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)((int)puVar29 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)((int)puVar29 + -0x10)" * (cast_expression "(int *)((int)puVar29 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) comment comment (expression_statement "*(undefined1 **)((int)puVar29 + -0x14) = &LAB_000786bc;" (assignment_expression "*(undefined1 **)((int)puVar29 + -0x14) = &LAB_000786bc" (pointer_expression "*(undefined1 **)((int)puVar29 + -0x14)" * (cast_expression "(undefined1 **)((int)puVar29 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_000786bc" & identifier)) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8))" identifier (argument_list "(*(char **)((int)puVar29 + -0x10),*(int *)((int)puVar29 + -0xc),\n                        *(char **)((int)puVar29 + -8))" ( (pointer_expression "*(char **)((int)puVar29 + -0x10)" * (cast_expression "(char **)((int)puVar29 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar29 + -0xc)" * (cast_expression "(int *)((int)puVar29 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar29 + -8)" * (cast_expression "(char **)((int)puVar29 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -8)" ( (binary_expression "(int)puVar29 + -8" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 2) {\n    AVar13 = local_b0->invalid_address;\n    *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n    pcVar8 = *(code **)((int)AVar13 + 0x48);\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x7831b;\n    cVar17 = (*pcVar8)();\n    if (cVar17 != '\0') {\n      iVar25 = (int)pTVar16->invalid_address;\n      pcVar8 = *(code **)(iVar25 + 8);\n      if (pcVar8 == (code *)(local_e0 + -0x36d580)) {\n        pcVar8 = *(code **)(iVar25 + 0x4c);\n        bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);\n        bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);\n        if (bVar37) {\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x78586;\n        local_da = (bool)(*pcVar8)();\n      }\n      else {\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;\n        local_da = (bool)(*pcVar8)();\n      }\n      goto LAB_00077807;\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar25 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar25 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar25 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar25 + 8) + 0x5934" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    AVar13 = local_b0->invalid_address;\n    *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n    pcVar8 = *(code **)((int)AVar13 + 0x48);\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x7831b;\n    cVar17 = (*pcVar8)();\n    if (cVar17 != '\0') {\n      iVar25 = (int)pTVar16->invalid_address;\n      pcVar8 = *(code **)(iVar25 + 8);\n      if (pcVar8 == (code *)(local_e0 + -0x36d580)) {\n        pcVar8 = *(code **)(iVar25 + 0x4c);\n        bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);\n        bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);\n        if (bVar37) {\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x78586;\n        local_da = (bool)(*pcVar8)();\n      }\n      else {\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;\n        local_da = (bool)(*pcVar8)();\n      }\n      goto LAB_00077807;\n    }\n  }" { (expression_statement "AVar13 = local_b0->invalid_address;" (assignment_expression "AVar13 = local_b0->invalid_address" identifier = (field_expression "local_b0->invalid_address" identifier -> field_identifier)) ;) (expression_statement "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;" (assignment_expression "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0" (pointer_expression "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10)" * (call_expression "(Target_powerpc<64,_false> **)((int)puVar29 + -0x10)" (parenthesized_expression "(Target_powerpc<64,_false> **)" ( (comma_expression "Target_powerpc<64,_false> **" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = *(code **)((int)AVar13 + 0x48);" (assignment_expression "pcVar8 = *(code **)((int)AVar13 + 0x48)" identifier = (pointer_expression "*(code **)((int)AVar13 + 0x48)" * (cast_expression "(code **)((int)AVar13 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)AVar13 + 0x48)" ( (binary_expression "(int)AVar13 + 0x48" (cast_expression "(int)AVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)puVar29 + -0x14) = 0x7831b;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x7831b" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar17 = (*pcVar8)();" (assignment_expression "cVar17 = (*pcVar8)()" identifier = (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar17 != '\0') {\n      iVar25 = (int)pTVar16->invalid_address;\n      pcVar8 = *(code **)(iVar25 + 8);\n      if (pcVar8 == (code *)(local_e0 + -0x36d580)) {\n        pcVar8 = *(code **)(iVar25 + 0x4c);\n        bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);\n        bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);\n        if (bVar37) {\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x78586;\n        local_da = (bool)(*pcVar8)();\n      }\n      else {\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;\n        local_da = (bool)(*pcVar8)();\n      }\n      goto LAB_00077807;\n    }" if (parenthesized_expression "(cVar17 != '\0')" ( (binary_expression "cVar17 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar25 = (int)pTVar16->invalid_address;\n      pcVar8 = *(code **)(iVar25 + 8);\n      if (pcVar8 == (code *)(local_e0 + -0x36d580)) {\n        pcVar8 = *(code **)(iVar25 + 0x4c);\n        bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);\n        bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);\n        if (bVar37) {\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x78586;\n        local_da = (bool)(*pcVar8)();\n      }\n      else {\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;\n        local_da = (bool)(*pcVar8)();\n      }\n      goto LAB_00077807;\n    }" { (expression_statement "iVar25 = (int)pTVar16->invalid_address;" (assignment_expression "iVar25 = (int)pTVar16->invalid_address" identifier = (cast_expression "(int)pTVar16->invalid_address" ( (type_descriptor "int" primitive_type) ) (field_expression "pTVar16->invalid_address" identifier -> field_identifier))) ;) (expression_statement "pcVar8 = *(code **)(iVar25 + 8);" (assignment_expression "pcVar8 = *(code **)(iVar25 + 8)" identifier = (pointer_expression "*(code **)(iVar25 + 8)" * (cast_expression "(code **)(iVar25 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) ))))) ;) (if_statement "if (pcVar8 == (code *)(local_e0 + -0x36d580)) {\n        pcVar8 = *(code **)(iVar25 + 0x4c);\n        bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);\n        bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);\n        if (bVar37) {\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x78586;\n        local_da = (bool)(*pcVar8)();\n      }\n      else {\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;\n        local_da = (bool)(*pcVar8)();\n      }" if (parenthesized_expression "(pcVar8 == (code *)(local_e0 + -0x36d580))" ( (binary_expression "pcVar8 == (code *)(local_e0 + -0x36d580)" identifier == (cast_expression "(code *)(local_e0 + -0x36d580)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x36d580)" ( (binary_expression "local_e0 + -0x36d580" identifier + number_literal) )))) )) (compound_statement "{\n        pcVar8 = *(code **)(iVar25 + 0x4c);\n        bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);\n        bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);\n        if (bVar37) {\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x78586;\n        local_da = (bool)(*pcVar8)();\n      }" { (expression_statement "pcVar8 = *(code **)(iVar25 + 0x4c);" (assignment_expression "pcVar8 = *(code **)(iVar25 + 0x4c)" identifier = (pointer_expression "*(code **)(iVar25 + 0x4c)" * (cast_expression "(code **)(iVar25 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 0x4c)" ( (binary_expression "iVar25 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U);" (assignment_expression "bVar35 = pcVar8 < (code *)(local_e0 - 0x36d4c0U)" identifier = (binary_expression "pcVar8 < (code *)(local_e0 - 0x36d4c0U)" identifier < (cast_expression "(code *)(local_e0 - 0x36d4c0U)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 - 0x36d4c0U)" ( (binary_expression "local_e0 - 0x36d4c0U" identifier - number_literal) ))))) ;) (expression_statement "bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U);" (assignment_expression "bVar37 = pcVar8 == (code *)(local_e0 - 0x36d4c0U)" identifier = (binary_expression "pcVar8 == (code *)(local_e0 - 0x36d4c0U)" identifier == (cast_expression "(code *)(local_e0 - 0x36d4c0U)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 - 0x36d4c0U)" ( (binary_expression "local_e0 - 0x36d4c0U" identifier - number_literal) ))))) ;) (if_statement "if (bVar37) {\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }" if (parenthesized_expression "(bVar37)" ( identifier )) (compound_statement "{\n          iVar25 = 0xc;\n          pbVar31 = (byte *)(local_e0 + -0x11c39e);\n          _Var33 = src_section_name._M_dataplus;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);\n          bVar36 = false;\n          bVar35 = (!bVar35 && !bVar37) == bVar35;\n          if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }\n          goto LAB_00077800;\n        }" { (expression_statement "iVar25 = 0xc;" (assignment_expression "iVar25 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11c39e);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11c39e)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c39e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c39e)" ( (binary_expression "local_e0 + -0x11c39e" identifier + number_literal) )))) ;) (expression_statement "_Var33 = src_section_name._M_dataplus;" (assignment_expression "_Var33 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          } while (bVar37);" do (compound_statement "{\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar35 = *pbVar31 < (byte)*_Var33._M_p;\n            bVar37 = *pbVar31 == *_Var33._M_p;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n          }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar35 = *pbVar31 < (byte)*_Var33._M_p;" (assignment_expression "bVar35 = *pbVar31 < (byte)*_Var33._M_p" identifier = (binary_expression "*pbVar31 < (byte)*_Var33._M_p" (pointer_expression "*pbVar31" * identifier) < (binary_expression "(byte)*_Var33._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar37 = *pbVar31 == *_Var33._M_p;" (assignment_expression "bVar37 = *pbVar31 == *_Var33._M_p" identifier = (binary_expression "*pbVar31 == *_Var33._M_p" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*_Var33._M_p" * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);" (assignment_expression "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (field_expression "_Var33._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" ( (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2 + 1" (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2" (cast_expression "(byte *)_Var33._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var33._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "bVar35 = (!bVar35 && !bVar37) == bVar35;" (assignment_expression "bVar35 = (!bVar35 && !bVar37) == bVar35" identifier = (binary_expression "(!bVar35 && !bVar37) == bVar35" (parenthesized_expression "(!bVar35 && !bVar37)" ( (binary_expression "!bVar35 && !bVar37" (unary_expression "!bVar35" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar35) {\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(!bVar35)" ( (unary_expression "!bVar35" ! identifier) )) (compound_statement "{\n            iVar25 = 0x11;\n            pbVar31 = (byte *)(local_e0 + -0x11c391);\n            _Var33 = src_section_name._M_dataplus;\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);\n            bVar37 = false;\n            bVar35 = (!bVar36 && !bVar35) == bVar36;\n            if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }\n          }" { (expression_statement "iVar25 = 0x11;" (assignment_expression "iVar25 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11c391);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11c391)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c391)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c391)" ( (binary_expression "local_e0 + -0x11c391" identifier + number_literal) )))) ;) (expression_statement "_Var33 = src_section_name._M_dataplus;" (assignment_expression "_Var33 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            } while (bVar35);" do (compound_statement "{\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n              bVar35 = *pbVar31 == *_Var33._M_p;\n              pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n              _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n            }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar36 = *pbVar31 < (byte)*_Var33._M_p;" (assignment_expression "bVar36 = *pbVar31 < (byte)*_Var33._M_p" identifier = (binary_expression "*pbVar31 < (byte)*_Var33._M_p" (pointer_expression "*pbVar31" * identifier) < (binary_expression "(byte)*_Var33._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar35 = *pbVar31 == *_Var33._M_p;" (assignment_expression "bVar35 = *pbVar31 == *_Var33._M_p" identifier = (binary_expression "*pbVar31 == *_Var33._M_p" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*_Var33._M_p" * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);" (assignment_expression "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (field_expression "_Var33._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" ( (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2 + 1" (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2" (cast_expression "(byte *)_Var33._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var33._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar35)" ( identifier )) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar35 = (!bVar36 && !bVar35) == bVar36;" (assignment_expression "bVar35 = (!bVar36 && !bVar35) == bVar36" identifier = (binary_expression "(!bVar36 && !bVar35) == bVar36" (parenthesized_expression "(!bVar36 && !bVar35)" ( (binary_expression "!bVar36 && !bVar35" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar35" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar35) {\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }" if (parenthesized_expression "(!bVar35)" ( (unary_expression "!bVar35" ! identifier) )) (compound_statement "{\n              iVar25 = 0xc;\n              pbVar31 = (byte *)(local_e0 + -0x11c37f);\n              _Var33 = src_section_name._M_dataplus;\n              do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);\n              bVar36 = false;\n              bVar35 = (!bVar37 && !bVar35) == bVar37;\n              if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }\n            }" { (expression_statement "iVar25 = 0xc;" (assignment_expression "iVar25 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11c37f);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11c37f)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c37f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c37f)" ( (binary_expression "local_e0 + -0x11c37f" identifier + number_literal) )))) ;) (expression_statement "_Var33 = src_section_name._M_dataplus;" (assignment_expression "_Var33 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              } while (bVar35);" do (compound_statement "{\n                if (iVar25 == 0) break;\n                iVar25 = iVar25 + -1;\n                bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                bVar35 = *pbVar31 == *_Var33._M_p;\n                pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n              }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar31 < (byte)*_Var33._M_p;" (assignment_expression "bVar37 = *pbVar31 < (byte)*_Var33._M_p" identifier = (binary_expression "*pbVar31 < (byte)*_Var33._M_p" (pointer_expression "*pbVar31" * identifier) < (binary_expression "(byte)*_Var33._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar35 = *pbVar31 == *_Var33._M_p;" (assignment_expression "bVar35 = *pbVar31 == *_Var33._M_p" identifier = (binary_expression "*pbVar31 == *_Var33._M_p" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*_Var33._M_p" * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);" (assignment_expression "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (field_expression "_Var33._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" ( (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2 + 1" (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2" (cast_expression "(byte *)_Var33._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var33._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar35)" ( identifier )) ;) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "bVar35 = (!bVar37 && !bVar35) == bVar37;" (assignment_expression "bVar35 = (!bVar37 && !bVar35) == bVar37" identifier = (binary_expression "(!bVar37 && !bVar35) == bVar37" (parenthesized_expression "(!bVar37 && !bVar35)" ( (binary_expression "!bVar37 && !bVar35" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar35" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar35) {\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }" if (parenthesized_expression "(!bVar35)" ( (unary_expression "!bVar35" ! identifier) )) (compound_statement "{\n                iVar25 = 0x11;\n                pbVar31 = (byte *)(local_e0 + -0x11c372);\n                _Var33 = src_section_name._M_dataplus;\n                do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);\n                bVar37 = false;\n                bVar35 = (!bVar36 && !bVar35) == bVar36;\n                if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }\n              }" { (expression_statement "iVar25 = 0x11;" (assignment_expression "iVar25 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11c372);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11c372)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c372)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c372)" ( (binary_expression "local_e0 + -0x11c372" identifier + number_literal) )))) ;) (expression_statement "_Var33 = src_section_name._M_dataplus;" (assignment_expression "_Var33 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                } while (bVar35);" do (compound_statement "{\n                  if (iVar25 == 0) break;\n                  iVar25 = iVar25 + -1;\n                  bVar36 = *pbVar31 < (byte)*_Var33._M_p;\n                  bVar35 = *pbVar31 == *_Var33._M_p;\n                  pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                  _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar36 = *pbVar31 < (byte)*_Var33._M_p;" (assignment_expression "bVar36 = *pbVar31 < (byte)*_Var33._M_p" identifier = (binary_expression "*pbVar31 < (byte)*_Var33._M_p" (pointer_expression "*pbVar31" * identifier) < (binary_expression "(byte)*_Var33._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar35 = *pbVar31 == *_Var33._M_p;" (assignment_expression "bVar35 = *pbVar31 == *_Var33._M_p" identifier = (binary_expression "*pbVar31 == *_Var33._M_p" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*_Var33._M_p" * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);" (assignment_expression "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (field_expression "_Var33._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" ( (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2 + 1" (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2" (cast_expression "(byte *)_Var33._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var33._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar35)" ( identifier )) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar35 = (!bVar36 && !bVar35) == bVar36;" (assignment_expression "bVar35 = (!bVar36 && !bVar35) == bVar36" identifier = (binary_expression "(!bVar36 && !bVar35) == bVar36" (parenthesized_expression "(!bVar36 && !bVar35)" ( (binary_expression "!bVar36 && !bVar35" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar35" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar35) {\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }" if (parenthesized_expression "(!bVar35)" ( (unary_expression "!bVar35" ! identifier) )) (compound_statement "{\n                  iVar25 = 9;\n                  pbVar31 = (byte *)(local_e0 + -0x11c360);\n                  _Var33 = src_section_name._M_dataplus;\n                  do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);\n                  local_da = (!bVar37 && !bVar35) != bVar37;\n                  goto LAB_00077807;\n                }" { (expression_statement "iVar25 = 9;" (assignment_expression "iVar25 = 9" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11c360);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11c360)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c360)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c360)" ( (binary_expression "local_e0 + -0x11c360" identifier + number_literal) )))) ;) (expression_statement "_Var33 = src_section_name._M_dataplus;" (assignment_expression "_Var33 = src_section_name._M_dataplus" identifier = (field_expression "src_section_name._M_dataplus" identifier . field_identifier)) ;) (do_statement "do {\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  } while (bVar35);" do (compound_statement "{\n                    if (iVar25 == 0) break;\n                    iVar25 = iVar25 + -1;\n                    bVar37 = *pbVar31 < (byte)*_Var33._M_p;\n                    bVar35 = *pbVar31 == *_Var33._M_p;\n                    pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n                    _Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);\n                  }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar31 < (byte)*_Var33._M_p;" (assignment_expression "bVar37 = *pbVar31 < (byte)*_Var33._M_p" identifier = (binary_expression "*pbVar31 < (byte)*_Var33._M_p" (pointer_expression "*pbVar31" * identifier) < (binary_expression "(byte)*_Var33._M_p" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "bVar35 = *pbVar31 == *_Var33._M_p;" (assignment_expression "bVar35 = *pbVar31 == *_Var33._M_p" identifier = (binary_expression "*pbVar31 == *_Var33._M_p" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*_Var33._M_p" * (field_expression "_Var33._M_p" identifier . field_identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1);" (assignment_expression "_Var33._M_p = (pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (field_expression "_Var33._M_p" identifier . field_identifier) = (call_expression "(pointer)((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((byte *)_Var33._M_p + (uint)bVar38 * -2 + 1)" ( (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2 + 1" (binary_expression "(byte *)_Var33._M_p + (uint)bVar38 * -2" (cast_expression "(byte *)_Var33._M_p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var33._M_p" identifier . field_identifier)) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar35)" ( identifier )) ;) (expression_statement "local_da = (!bVar37 && !bVar35) != bVar37;" (assignment_expression "local_da = (!bVar37 && !bVar35) != bVar37" identifier = (binary_expression "(!bVar37 && !bVar35) != bVar37" (parenthesized_expression "(!bVar37 && !bVar35)" ( (binary_expression "!bVar37 && !bVar35" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar35" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00077807;" goto statement_identifier ;) })) })) })) })) (goto_statement "goto LAB_00077800;" goto statement_identifier ;) })) (expression_statement "*(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar29 + -0xc)" * (cast_expression "(pointer *)((int)puVar29 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (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 "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;" (assignment_expression "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0" (pointer_expression "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10)" * (call_expression "(Target_powerpc<64,_false> **)((int)puVar29 + -0x10)" (parenthesized_expression "(Target_powerpc<64,_false> **)" ( (comma_expression "Target_powerpc<64,_false> **" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar29 + -0x14) = 0x78586;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x78586" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_da = (bool)(*pcVar8)();" (assignment_expression "local_da = (bool)(*pcVar8)()" identifier = (cast_expression "(bool)(*pcVar8)()" ( (type_descriptor "bool" primitive_type) ) (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))))) ;) }) (else_clause "else {\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;\n        local_da = (bool)(*pcVar8)();\n      }" else (compound_statement "{\n        *(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;\n        *(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;\n                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */\n        *(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;\n        local_da = (bool)(*pcVar8)();\n      }" { (expression_statement "*(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar29 + -0xc) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar29 + -0xc)" * (cast_expression "(pointer *)((int)puVar29 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0xc)" ( (binary_expression "(int)puVar29 + -0xc" (cast_expression "(int)puVar29" ( (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 "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0;" (assignment_expression "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10) = local_b0" (pointer_expression "*(Target_powerpc<64,_false> **)((int)puVar29 + -0x10)" * (call_expression "(Target_powerpc<64,_false> **)((int)puVar29 + -0x10)" (parenthesized_expression "(Target_powerpc<64,_false> **)" ( (comma_expression "Target_powerpc<64,_false> **" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar29 + -0x14) = 0x7856c;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x7856c" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_da = (bool)(*pcVar8)();" (assignment_expression "local_da = (bool)(*pcVar8)()" identifier = (cast_expression "(bool)(*pcVar8)()" ( (type_descriptor "bool" primitive_type) ) (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))))) ;) }))) (goto_statement "goto LAB_00077807;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00077800:\n  local_da = false;" statement_identifier : (expression_statement "local_da = false;" (assignment_expression "local_da = false" identifier = false) ;)) (ERROR "LAB_00077807:\n  if (target != (Target_powerpc<64,_false> *)0x0) {\n    local_e8 = (_func_int_varargs **)0x0;\n    local_f0 = local_a4;\n    local_b0 = (Target_powerpc<64,_false> *)0x0;\n    local_110 = &__node_gen;\n    puVar30 = puVar29;\n    do {\n      pOVar15 = local_c0;\n      local_d8 = (param_2->namepool_).string_set_._M_h._M_buckets;\n      local_b8 = (pointer)(param_2->namepool_).string_set_._M_h._M_element_count;\n      pSVar4 = (Sized_relobj_file<64,_false> *)(param_2->namepool_).string_set_._M_h._M_bucket_count\n      ;\n      local_bc = (Relobj *)(param_2->namepool_).string_set_._M_h._M_before_begin._M_nxt;\n      if (pSVar4 < src_obj) {\n        if (src_indx == 0) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0xea;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x785a9;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        iVar25 = src_indx + (int)pSVar4 * 0x18;\n        local_b4 = (Symbol_table *)(uint)*(ushort *)(iVar25 + 6);\n        puVar29 = puVar30;\n        if (local_b4 < (Symbol_table *)0xff00) {\nLAB_000779f0:\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 != '\0') {\n            src_id.first = (Relobj *)local_c0;\n            src_id.second = (uint)local_b4;\n            *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n            *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n            local_c4 = &src_id;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a51;\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)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n            bVar35 = true;\n            if ((*(byte *)(iVar25 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n            *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a83;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if (local_b4 == (Symbol_table *)0xffff) {\n            ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start;\n            if (ppOVar20 == (pointer)0x0) {\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }\n            *(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;\n            *(Output_segment **)((int)puVar30 + -0xc) = local_c0;\n            *(pointer *)((int)puVar30 + -0x10) = ppOVar20;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;\n            local_b4 = (Symbol_table *)\n                       Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));\n            goto LAB_000779f0;\n          }\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          src_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          src_id.second = 0;\n          local_c4 = &src_id;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778b4;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          bVar35 = false;\n          if ((*(byte *)(iVar25 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778e3;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\nLAB_000778e3:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = (Relobj *)local_cc;\n          src_id.second = local_c8;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x7791e;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78648;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78155;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77975;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n          if (!bVar35) goto LAB_00077980;\n        }\n        if ((((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)) &&\n            (local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1)) &&\n           (((__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)))\n           ) {\n          local_bc = *(Relobj **)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar25 + 6);\n          *(undefined4 *)((int)puVar30 + -0xc) = 1;\n          *(undefined4 *)((int)puVar30 + -0x10) = 0;\n          __node_gen_2._M_h = (__hashtable_alloc *)&(local_bc->super_Object).compressed_sections_;\n          *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_2;\n          *(Output_segment ***)((int)puVar30 + -0x18) = &local_7c;\n          *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_2._M_h;\n          *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n          *(undefined4 *)((int)puVar30 + -0x24) = 0x77ddf;\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          puVar30 = (undefined4 *)((int)puVar30 + -4);\n        }\n        puVar29 = puVar30;\n        if (symtab != local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            puVar30[-2] = local_e0 + -0x11dc58;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x785c7;\n            do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }\n          puVar29 = puVar30;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pRVar34 = *(Relobj **)(local_ec + 0x158);\n            src_id_1.first = (Relobj *)local_c0;\n            src_id_1.second = (uint)symtab;\n            pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n            dst_id.first = (Relobj *)local_cc;\n            dst_id.second = (uint)local_b4;\n            pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n            if (pcVar5 == (char *)0x0) {\nLAB_00077ba0:\n              puVar30[-4] = &local_8c;\n              local_8c = &src_id_1;\n              puVar30[-5] = 0x77bc1;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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            iVar25 = local_ec;\n            piVar6 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            iVar7 = *piVar6;\n            puVar30[-2] = local_d0;\n            puVar30[-3] = local_d4;\n            puVar30[-4] = local_b4;\n            puVar30[-5] = local_cc;\n            puVar30[-6] = symtab;\n            puVar30[-7] = local_c0;\n            puVar30[-8] = local_ec;\n            puVar30[-9] = piVar6;\n            pcVar8 = *(code **)(iVar7 + 0x104);\n            puVar30[-10] = 0x77c37;\n            (*pcVar8)();\n            pp_Var19 = local_e8;\n            puVar29 = puVar30 + -1;\n            if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);\n      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;\n      puVar30 = puVar29;\n    } while (target != local_b0);\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_114) {\n    *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78222;\n    operator_delete(*(void **)((int)puVar29 + -0x10));\n  }\n  return;\n}" identifier : if (parenthesized_expression "(target != (Target_powerpc<64,_false> *)0x0)" ( (binary_expression "target != (Target_powerpc<64,_false> *)0x0)" identifier != (parenthesized_expression "(Target_powerpc<64,_false> *)0x0)" ( (comma_expression "Target_powerpc<64,_false> *)0x0" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) { (expression_statement "local_e8 = (_func_int_varargs **)0x0;" (assignment_expression "local_e8 = (_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_f0 = local_a4;" (assignment_expression "local_f0 = local_a4" identifier = identifier) ;) (expression_statement "local_b0 = (Target_powerpc<64,_false> *)0x0;" (assignment_expression "local_b0 = (Target_powerpc<64,_false> *)0x0" identifier = (parenthesized_expression "(Target_powerpc<64,_false> *)0x0" ( (comma_expression "Target_powerpc<64,_false> *)0x0" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) ;) (expression_statement "local_110 = &__node_gen;" (assignment_expression "local_110 = &__node_gen" identifier = (pointer_expression "&__node_gen" & identifier)) ;) (expression_statement "puVar30 = puVar29;" (assignment_expression "puVar30 = puVar29" identifier = identifier) ;) do { (expression_statement "pOVar15 = local_c0;" (assignment_expression "pOVar15 = local_c0" identifier = identifier) ;) (expression_statement "local_d8 = (param_2->namepool_).string_set_._M_h._M_buckets;" (assignment_expression "local_d8 = (param_2->namepool_).string_set_._M_h._M_buckets" identifier = (field_expression "(param_2->namepool_).string_set_._M_h._M_buckets" (field_expression "(param_2->namepool_).string_set_._M_h" (field_expression "(param_2->namepool_).string_set_" (parenthesized_expression "(param_2->namepool_)" ( (field_expression "param_2->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "local_b8 = (pointer)(param_2->namepool_).string_set_._M_h._M_element_count;" (assignment_expression "local_b8 = (pointer)(param_2->namepool_).string_set_._M_h._M_element_count" identifier = (field_expression "(pointer)(param_2->namepool_).string_set_._M_h._M_element_count" (field_expression "(pointer)(param_2->namepool_).string_set_._M_h" (field_expression "(pointer)(param_2->namepool_).string_set_" (call_expression "(pointer)(param_2->namepool_)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(param_2->namepool_)" ( (field_expression "param_2->namepool_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pSVar4 = (Sized_relobj_file<64,_false> *)(param_2->namepool_).string_set_._M_h._M_bucket_count\n      ;" (assignment_expression "pSVar4 = (Sized_relobj_file<64,_false> *)(param_2->namepool_).string_set_._M_h._M_bucket_count" identifier = (field_expression "(Sized_relobj_file<64,_false> *)(param_2->namepool_).string_set_._M_h._M_bucket_count" (field_expression "(Sized_relobj_file<64,_false> *)(param_2->namepool_).string_set_._M_h" (field_expression "(Sized_relobj_file<64,_false> *)(param_2->namepool_).string_set_" (call_expression "(Sized_relobj_file<64,_false> *)(param_2->namepool_)" (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 "*" * identifier))) )) (argument_list "(param_2->namepool_)" ( (field_expression "param_2->namepool_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "local_bc = (Relobj *)(param_2->namepool_).string_set_._M_h._M_before_begin._M_nxt;" (assignment_expression "local_bc = (Relobj *)(param_2->namepool_).string_set_._M_h._M_before_begin._M_nxt" identifier = (cast_expression "(Relobj *)(param_2->namepool_).string_set_._M_h._M_before_begin._M_nxt" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(param_2->namepool_).string_set_._M_h._M_before_begin._M_nxt" (field_expression "(param_2->namepool_).string_set_._M_h._M_before_begin" (field_expression "(param_2->namepool_).string_set_._M_h" (field_expression "(param_2->namepool_).string_set_" (parenthesized_expression "(param_2->namepool_)" ( (field_expression "param_2->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) if (parenthesized_expression "(pSVar4 < src_obj)" ( (binary_expression "pSVar4 < src_obj" identifier < identifier) )) { (if_statement "if (src_indx == 0) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0xea;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x785a9;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }" if (parenthesized_expression "(src_indx == 0)" ( (binary_expression "src_indx == 0" identifier == number_literal) )) (compound_statement "{\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0xea;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x785a9;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }" { (expression_statement "*(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;" (assignment_expression "*(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4" (pointer_expression "*(int *)((int)puVar30 + -8)" * (cast_expression "(int *)((int)puVar30 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11e2b4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)((int)puVar30 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar30 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;" (assignment_expression "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41" (pointer_expression "*(int *)((int)puVar30 + -0x10)" * (cast_expression "(int *)((int)puVar30 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11cf41" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x785a9;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x785a9" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8))" identifier (argument_list "(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8))" ( (pointer_expression "*(char **)((int)puVar30 + -0x10)" * (cast_expression "(char **)((int)puVar30 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar30 + -0xc)" * (cast_expression "(int *)((int)puVar30 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar30 + -8)" * (cast_expression "(char **)((int)puVar30 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "iVar25 = src_indx + (int)pSVar4 * 0x18;" (assignment_expression "iVar25 = src_indx + (int)pSVar4 * 0x18" identifier = (binary_expression "src_indx + (int)pSVar4 * 0x18" identifier + (binary_expression "(int)pSVar4 * 0x18" (cast_expression "(int)pSVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "local_b4 = (Symbol_table *)(uint)*(ushort *)(iVar25 + 6);" (assignment_expression "local_b4 = (Symbol_table *)(uint)*(ushort *)(iVar25 + 6)" identifier = (binary_expression "(Symbol_table *)(uint)*(ushort *)(iVar25 + 6)" (cast_expression "(Symbol_table *)(uint)" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar25 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 6)" ( (binary_expression "iVar25 + 6" identifier + number_literal) ))))) ;) (expression_statement "puVar29 = puVar30;" (assignment_expression "puVar29 = puVar30" identifier = identifier) ;) (if_statement "if (local_b4 < (Symbol_table *)0xff00) {\nLAB_000779f0:\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 != '\0') {\n            src_id.first = (Relobj *)local_c0;\n            src_id.second = (uint)local_b4;\n            *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n            *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n            local_c4 = &src_id;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a51;\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)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n            bVar35 = true;\n            if ((*(byte *)(iVar25 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n            *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a83;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if (local_b4 == (Symbol_table *)0xffff) {\n            ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start;\n            if (ppOVar20 == (pointer)0x0) {\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }\n            *(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;\n            *(Output_segment **)((int)puVar30 + -0xc) = local_c0;\n            *(pointer *)((int)puVar30 + -0x10) = ppOVar20;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;\n            local_b4 = (Symbol_table *)\n                       Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));\n            goto LAB_000779f0;\n          }\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          src_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          src_id.second = 0;\n          local_c4 = &src_id;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778b4;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          bVar35 = false;\n          if ((*(byte *)(iVar25 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778e3;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\nLAB_000778e3:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = (Relobj *)local_cc;\n          src_id.second = local_c8;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x7791e;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78648;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78155;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77975;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n          if (!bVar35) goto LAB_00077980;\n        }" if (parenthesized_expression "(local_b4 < (Symbol_table *)0xff00)" ( (binary_expression "local_b4 < (Symbol_table *)0xff00" identifier < (cast_expression "(Symbol_table *)0xff00" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000779f0:\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 != '\0') {\n            src_id.first = (Relobj *)local_c0;\n            src_id.second = (uint)local_b4;\n            *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n            *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n            local_c4 = &src_id;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a51;\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)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n            bVar35 = true;\n            if ((*(byte *)(iVar25 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n            *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a83;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\n            goto LAB_000778e3;\n          }\n        }" { (labeled_statement "LAB_000779f0:\n          local_cc = *(Output_segment **)(iVar25 + 8);" statement_identifier : (expression_statement "local_cc = *(Output_segment **)(iVar25 + 8);" (assignment_expression "local_cc = *(Output_segment **)(iVar25 + 8)" identifier = (pointer_expression "*(Output_segment **)(iVar25 + 8)" * (cast_expression "(Output_segment **)(iVar25 + 8)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) ))))) ;)) (expression_statement "local_c8 = *(uint *)(iVar25 + 0xc);" (assignment_expression "local_c8 = *(uint *)(iVar25 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar25 + 0xc)" * (cast_expression "(uint *)(iVar25 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);" (binary_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc)" (binary_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std" (assignment_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold" identifier = (binary_expression "(int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold" (binary_expression "(int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base" (cast_expression "(int)&(local_bc->super_Object)._vptr_Object" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_bc->super_Object)._vptr_Object" & (field_expression "(local_bc->super_Object)._vptr_Object" (parenthesized_expression "(local_bc->super_Object)" ( (field_expression "local_bc->super_Object" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(int)&local_cc->output_lists_[0].\n                           super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_cc->output_lists_[0].\n                           super__Vector_base" & (field_expression "local_cc->output_lists_[0].\n                           super__Vector_base" (subscript_expression "local_cc->output_lists_[0]" (field_expression "local_cc->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 ";" ;) (assignment_expression "local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc)" identifier = (binary_expression "local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc)" (binary_expression "local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc)" identifier + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_cc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_cc)" identifier (argument_list "((uint)local_bc,(uint)local_cc)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + (pointer_expression "*(uint *)(iVar25 + 0xc)" * (cast_expression "(uint *)(iVar25 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) ))))))) ;) (if_statement "if (local_d9 != '\0') {\n            src_id.first = (Relobj *)local_c0;\n            src_id.second = (uint)local_b4;\n            *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n            *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n            local_c4 = &src_id;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a51;\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)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n            bVar35 = true;\n            if ((*(byte *)(iVar25 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n            *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a83;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\n            goto LAB_000778e3;\n          }" if (parenthesized_expression "(local_d9 != '\0')" ( (binary_expression "local_d9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            src_id.first = (Relobj *)local_c0;\n            src_id.second = (uint)local_b4;\n            *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n            *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n            local_c4 = &src_id;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a51;\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)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n            bVar35 = true;\n            if ((*(byte *)(iVar25 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n            *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            src_id.first = (Relobj *)0xffffffff;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x77a83;\n            std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\n            goto LAB_000778e3;\n          }" { (expression_statement "src_id.first = (Relobj *)local_c0;" (assignment_expression "src_id.first = (Relobj *)local_c0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_c0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = (uint)local_b4;" (assignment_expression "src_id.second = (uint)local_b4" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(Section_id **)((int)puVar30 + -0xc) = &src_id;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = &src_id" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&src_id" & identifier)) ;) (expression_statement "*(mapped_type **)((int)puVar30 + -0x10) = local_fc;" (assignment_expression "*(mapped_type **)((int)puVar30 + -0x10) = local_fc" (pointer_expression "*(mapped_type **)((int)puVar30 + -0x10)" * (cast_expression "(mapped_type **)((int)puVar30 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = &src_id;" (assignment_expression "local_c4 = &src_id" identifier = (pointer_expression "&src_id" & identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x77a51;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x77a51" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                      (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)puVar30 + -0x10),\n                       *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)puVar30 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                         **)((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -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)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "bVar35 = true;" (assignment_expression "bVar35 = true" identifier = true) ;) (if_statement "if ((*(byte *)(iVar25 + 4) & 0xf) != 3) goto LAB_000778c8;" if (parenthesized_expression "((*(byte *)(iVar25 + 4) & 0xf) != 3)" ( (binary_expression "(*(byte *)(iVar25 + 4) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar25 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar25 + 4) & 0xf" (pointer_expression "*(byte *)(iVar25 + 4)" * (cast_expression "(byte *)(iVar25 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000778c8;" goto statement_identifier ;)) (labeled_statement "LAB_00077a68:\n            *(Section_id **)((int)puVar30 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(Section_id **)((int)puVar30 + -0xc) = local_c4;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = local_c4" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(Symbol_info **)((int)puVar30 + -0x10) = local_f8;" (assignment_expression "*(Symbol_info **)((int)puVar30 + -0x10) = local_f8" (pointer_expression "*(Symbol_info **)((int)puVar30 + -0x10)" * (cast_expression "(Symbol_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x14) = 0x77a83;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x77a83" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));" (binary_expression "Symbol*>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc))" identifier * (ERROR ">" >) (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)puVar30 + -0xc)" * (cast_expression "(Symbol ***)((int)puVar30 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (goto_statement "goto LAB_000778e3;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (local_b4 == (Symbol_table *)0xffff) {\n            ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start;\n            if (ppOVar20 == (pointer)0x0) {\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }\n            *(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;\n            *(Output_segment **)((int)puVar30 + -0xc) = local_c0;\n            *(pointer *)((int)puVar30 + -0x10) = ppOVar20;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;\n            local_b4 = (Symbol_table *)\n                       Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));\n            goto LAB_000779f0;\n          }\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          src_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          src_id.second = 0;\n          local_c4 = &src_id;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778b4;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          bVar35 = false;\n          if ((*(byte *)(iVar25 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778e3;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\nLAB_000778e3:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = (Relobj *)local_cc;\n          src_id.second = local_c8;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x7791e;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78648;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78155;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77975;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n          if (!bVar35) goto LAB_00077980;\n        }" else (compound_statement "{\n          if (local_b4 == (Symbol_table *)0xffff) {\n            ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start;\n            if (ppOVar20 == (pointer)0x0) {\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }\n            *(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;\n            *(Output_segment **)((int)puVar30 + -0xc) = local_c0;\n            *(pointer *)((int)puVar30 + -0x10) = ppOVar20;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;\n            local_b4 = (Symbol_table *)\n                       Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));\n            goto LAB_000779f0;\n          }\n          local_cc = *(Output_segment **)(iVar25 + 8);\n          local_c8 = *(uint *)(iVar25 + 0xc);\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          src_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          src_id.second = 0;\n          local_c4 = &src_id;\n                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778b4;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          bVar35 = false;\n          if ((*(byte *)(iVar25 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n          src_id.first = (Relobj *)0x0;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x778e3;\n          std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::emplace_back<gold::Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));\nLAB_000778e3:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = (Relobj *)local_cc;\n          src_id.second = local_c8;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x7791e;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78648;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78155;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77975;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n          if (!bVar35) goto LAB_00077980;\n        }" { (if_statement "if (local_b4 == (Symbol_table *)0xffff) {\n            ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start;\n            if (ppOVar20 == (pointer)0x0) {\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }\n            *(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;\n            *(Output_segment **)((int)puVar30 + -0xc) = local_c0;\n            *(pointer *)((int)puVar30 + -0x10) = ppOVar20;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;\n            local_b4 = (Symbol_table *)\n                       Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));\n            goto LAB_000779f0;\n          }" if (parenthesized_expression "(local_b4 == (Symbol_table *)0xffff)" ( (binary_expression "local_b4 == (Symbol_table *)0xffff" identifier == (cast_expression "(Symbol_table *)0xffff" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start;\n            if (ppOVar20 == (pointer)0x0) {\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }\n            *(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;\n            *(Output_segment **)((int)puVar30 + -0xc) = local_c0;\n            *(pointer *)((int)puVar30 + -0x10) = ppOVar20;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;\n            local_b4 = (Symbol_table *)\n                       Xindex::sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));\n            goto LAB_000779f0;\n          }" { (expression_statement "ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start;" (field_expression "ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl._M_start" (field_expression "ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                       _M_impl" (binary_expression "ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar20 = local_c0->output_lists_[4].\n                       super__Vector_base<gold" identifier = (binary_expression "local_c0->output_lists_[4].\n                       super__Vector_base<gold" (field_expression "local_c0->output_lists_[4].\n                       super__Vector_base" (subscript_expression "local_c0->output_lists_[4]" (field_expression "local_c0->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) ;) (if_statement "if (ppOVar20 == (pointer)0x0) {\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }" if (parenthesized_expression "(ppOVar20 == (pointer)0x0)" ( (binary_expression "ppOVar20 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n              ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;\n              *(Output_segment **)((int)puVar30 + -0x10) = local_c0;\n              pOVar2 = ppOVar20[0x1b];\n              *(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;\n              ppOVar20 = (pointer)(*(code *)pOVar2)();\n              pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;\n            }" { (expression_statement "ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start;" (field_expression "ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl._M_start" (field_expression "ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                         ._M_impl" (binary_expression "ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar20 = local_c0->output_lists_[0].\n                         super__Vector_base<gold" identifier = (binary_expression "local_c0->output_lists_[0].\n                         super__Vector_base<gold" (field_expression "local_c0->output_lists_[0].\n                         super__Vector_base" (subscript_expression "local_c0->output_lists_[0]" (field_expression "local_c0->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 "*(Output_segment **)((int)puVar30 + -0x10) = local_c0;" (assignment_expression "*(Output_segment **)((int)puVar30 + -0x10) = local_c0" (pointer_expression "*(Output_segment **)((int)puVar30 + -0x10)" * (cast_expression "(Output_segment **)((int)puVar30 + -0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pOVar2 = ppOVar20[0x1b];" (assignment_expression "pOVar2 = ppOVar20[0x1b]" identifier = (subscript_expression "ppOVar20[0x1b]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x7816f;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x7816f" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppOVar20 = (pointer)(*(code *)pOVar2)();" (assignment_expression "ppOVar20 = (pointer)(*(code *)pOVar2)()" identifier = (call_expression "(pointer)(*(code *)pOVar2)()" (call_expression "(pointer)(*(code *)pOVar2)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(*(code *)pOVar2)" ( (pointer_expression "*(code *)pOVar2" * (cast_expression "(code *)pOVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "()" ( )))) ;) (expression_statement "pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20;" (assignment_expression "pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start = ppOVar20" (field_expression "pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_start" (field_expression "pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pOVar15->output_lists_[4].\n              super__Vector_base<gold::Output_data*,_std" (binary_expression "pOVar15->output_lists_[4].\n              super__Vector_base<gold" (field_expression "pOVar15->output_lists_[4].\n              super__Vector_base" (subscript_expression "pOVar15->output_lists_[4]" (field_expression "pOVar15->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) = identifier) ;) })) (expression_statement "*(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4;" (assignment_expression "*(Sized_relobj_file<64,_false> **)((int)puVar30 + -8) = pSVar4" (pointer_expression "*(Sized_relobj_file<64,_false> **)((int)puVar30 + -8)" * (call_expression "(Sized_relobj_file<64,_false> **)((int)puVar30 + -8)" (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)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Output_segment **)((int)puVar30 + -0xc) = local_c0;" (assignment_expression "*(Output_segment **)((int)puVar30 + -0xc) = local_c0" (pointer_expression "*(Output_segment **)((int)puVar30 + -0xc)" * (cast_expression "(Output_segment **)((int)puVar30 + -0xc)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)puVar30 + -0x10) = ppOVar20;" (assignment_expression "*(pointer *)((int)puVar30 + -0x10) = ppOVar20" (pointer_expression "*(pointer *)((int)puVar30 + -0x10)" * (cast_expression "(pointer *)((int)puVar30 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x7809f;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x7809f" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "local_b4 = (Symbol_table *)\n                       Xindex::" (assignment_expression "local_b4 = (Symbol_table *)\n                       Xindex" identifier = (cast_expression "(Symbol_table *)\n                       Xindex" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8));" (call_expression "sym_xindex_to_shndx\n                                 (*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8))" identifier (argument_list "(*(Xindex **)((int)puVar30 + -0x10),\n                                  *(Object **)((int)puVar30 + -0xc),*(uint *)((int)puVar30 + -8))" ( (pointer_expression "*(Xindex **)((int)puVar30 + -0x10)" * (cast_expression "(Xindex **)((int)puVar30 + -0x10)" ( (type_descriptor "Xindex **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Object **)((int)puVar30 + -0xc)" * (cast_expression "(Object **)((int)puVar30 + -0xc)" ( (type_descriptor "Object **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)puVar30 + -8)" * (cast_expression "(uint *)((int)puVar30 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (goto_statement "goto LAB_000779f0;" goto statement_identifier ;) })) (expression_statement "local_cc = *(Output_segment **)(iVar25 + 8);" (assignment_expression "local_cc = *(Output_segment **)(iVar25 + 8)" identifier = (pointer_expression "*(Output_segment **)(iVar25 + 8)" * (cast_expression "(Output_segment **)(iVar25 + 8)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_c8 = *(uint *)(iVar25 + 0xc);" (assignment_expression "local_c8 = *(uint *)(iVar25 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar25 + 0xc)" * (cast_expression "(uint *)(iVar25 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc);" (binary_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n          ;\n          local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc)" (binary_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold::Output_data*,_std" (assignment_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold" identifier = (binary_expression "(int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base<gold" (binary_expression "(int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&local_cc->output_lists_[0].\n                           super__Vector_base" (cast_expression "(int)&(local_bc->super_Object)._vptr_Object" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_bc->super_Object)._vptr_Object" & (field_expression "(local_bc->super_Object)._vptr_Object" (parenthesized_expression "(local_bc->super_Object)" ( (field_expression "local_bc->super_Object" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(int)&local_cc->output_lists_[0].\n                           super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_cc->output_lists_[0].\n                           super__Vector_base" & (field_expression "local_cc->output_lists_[0].\n                           super__Vector_base" (subscript_expression "local_cc->output_lists_[0]" (field_expression "local_cc->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 ";" ;) (assignment_expression "local_d0 = local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc)" identifier = (binary_expression "local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc) + *(uint *)(iVar25 + 0xc)" (binary_expression "local_b8 +\n                     (uint)CARRY4((uint)local_bc,(uint)local_cc)" identifier + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_cc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_cc)" identifier (argument_list "((uint)local_bc,(uint)local_cc)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + (pointer_expression "*(uint *)(iVar25 + 0xc)" * (cast_expression "(uint *)(iVar25 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) ))))))) ;) (if_statement "if (local_d9 == '\0') goto LAB_00077980;" if (parenthesized_expression "(local_d9 == '\0')" ( (binary_expression "local_d9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00077980;" 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 "*(Section_id **)((int)puVar30 + -0xc) = &src_id;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = &src_id" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&src_id" & identifier)) ;) (expression_statement "*(mapped_type **)((int)puVar30 + -0x10) = local_fc;" (assignment_expression "*(mapped_type **)((int)puVar30 + -0x10) = local_fc" (pointer_expression "*(mapped_type **)((int)puVar30 + -0x10)" * (cast_expression "(mapped_type **)((int)puVar30 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (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_c4 = &src_id;" (assignment_expression "local_c4 = &src_id" identifier = (pointer_expression "&src_id" & identifier)) ;) comment (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x778b4;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x778b4" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar30 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -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)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "bVar35 = false;" (assignment_expression "bVar35 = false" identifier = false) ;) (if_statement "if ((*(byte *)(iVar25 + 4) & 0xf) == 3) goto LAB_00077a68;" if (parenthesized_expression "((*(byte *)(iVar25 + 4) & 0xf) == 3)" ( (binary_expression "(*(byte *)(iVar25 + 4) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar25 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar25 + 4) & 0xf" (pointer_expression "*(byte *)(iVar25 + 4)" * (cast_expression "(byte *)(iVar25 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00077a68;" goto statement_identifier ;)) (labeled_statement "LAB_000778c8:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(Section_id **)((int)puVar30 + -0xc) = local_c4;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = local_c4" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(Symbol_info **)((int)puVar30 + -0x10) = local_f8;" (assignment_expression "*(Symbol_info **)((int)puVar30 + -0x10) = local_f8" (pointer_expression "*(Symbol_info **)((int)puVar30 + -0x10)" * (cast_expression "(Symbol_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x14) = 0x778e3;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x778e3" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));" (binary_expression "Symbol*>\n                    (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc))" identifier * (ERROR ">" >) (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                      ((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)puVar30 + -0xc)" * (cast_expression "(Symbol ***)((int)puVar30 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (labeled_statement "LAB_000778e3:\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(Section_id **)((int)puVar30 + -0xc) = local_c4;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = local_c4" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(Addend_info **)((int)puVar30 + -0x10) = local_100;" (assignment_expression "*(Addend_info **)((int)puVar30 + -0x10) = local_100" (pointer_expression "*(Addend_info **)((int)puVar30 + -0x10)" * (cast_expression "(Addend_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = (Relobj *)local_cc;" (assignment_expression "src_id.first = (Relobj *)local_cc" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_cc" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = local_c8;" (assignment_expression "src_id.second = local_c8" (field_expression "src_id.second" identifier . field_identifier) = identifier) ;) (expression_statement "local_2c = local_bc;" (assignment_expression "local_2c = local_bc" identifier = identifier) ;) (expression_statement "local_28._M_p = local_b8;" (assignment_expression "local_28._M_p = local_b8" (field_expression "local_28._M_p" identifier . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x7791e;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x7791e" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc)" (pointer_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar30 + -0x10)" * (call_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc)" * (call_expression "(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;)) (if_statement "if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78648;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }" if (parenthesized_expression "(param_2->script_options_ != (Script_options *)0x0)" ( (binary_expression "param_2->script_options_ != (Script_options *)0x0" (field_expression "param_2->script_options_" identifier -> field_identifier) != (cast_expression "(Script_options *)0x0" ( (type_descriptor "Script_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78648;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }" { (expression_statement "*(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;" (assignment_expression "*(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c" (pointer_expression "*(int *)((int)puVar30 + -8)" * (cast_expression "(int *)((int)puVar30 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11de3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)puVar30 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar30 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;" (assignment_expression "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44" (pointer_expression "*(int *)((int)puVar30 + -0x10)" * (cast_expression "(int *)((int)puVar30 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11cc44" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x78648;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x78648" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8))" identifier (argument_list "(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8))" ( (pointer_expression "*(char **)((int)puVar30 + -0x10)" * (cast_expression "(char **)((int)puVar30 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar30 + -0xc)" * (cast_expression "(int *)((int)puVar30 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar30 + -8)" * (cast_expression "(char **)((int)puVar30 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "src_id.first = (Relobj *)param_2->number_of_input_files_;" (assignment_expression "src_id.first = (Relobj *)param_2->number_of_input_files_" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)param_2->number_of_input_files_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "param_2->number_of_input_files_" identifier -> field_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 "puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;" (assignment_expression "puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_f4->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_f4->\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 (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78155;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }" if (parenthesized_expression "(puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar3 == (local_f4->\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_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_f4->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_f4->\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            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x78155;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }" { (expression_statement "*(Section_id **)((int)puVar30 + -8) = local_c4;" (assignment_expression "*(Section_id **)((int)puVar30 + -8) = local_c4" (pointer_expression "*(Section_id **)((int)puVar30 + -8)" * (cast_expression "(Section_id **)((int)puVar30 + -8)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)puVar30 + -0xc) = puVar3;" (assignment_expression "*(pointer *)((int)puVar30 + -0xc) = puVar3" (pointer_expression "*(pointer *)((int)puVar30 + -0xc)" * (cast_expression "(pointer *)((int)puVar30 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Offset_info **)((int)puVar30 + -0x10) = local_f4;" (assignment_expression "*(Offset_info **)((int)puVar30 + -0x10) = local_f4" (pointer_expression "*(Offset_info **)((int)puVar30 + -0x10)" * (cast_expression "(Offset_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Offset_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x78155;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x78155" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8))" ( (comma_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8)" (pointer_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar30 + -0x10)" * (call_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8)" (binary_expression "(iterator)*(ulonglong **)((int)puVar30 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(ulonglong **)((int)puVar30 + -0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulonglong **)((int)puVar30 + -8)" * (cast_expression "(ulonglong **)((int)puVar30 + -8)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }" else (compound_statement "{\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }" { (expression_statement "*(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;" (assignment_expression "*(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_" (pointer_expression "*(Relobj **)puVar3" * (cast_expression "(Relobj **)puVar3" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (cast_expression "(Relobj *)param_2->number_of_input_files_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "param_2->number_of_input_files_" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)puVar3 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar3 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar3 + 4)" * (cast_expression "(undefined4 *)((int)puVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 4)" ( (binary_expression "(int)puVar3 + 4" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;" (assignment_expression "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1" (field_expression "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_f4->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_f4->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_f4->\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 "puVar3 + 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)puVar30 + -0xc) = &dst_id;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = &dst_id" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&dst_id" & identifier)) ;) (expression_statement "*(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;" (assignment_expression "*(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104" (pointer_expression "*(Reloc_addend_size_info **)((int)puVar30 + -0x10)" * (cast_expression "(Reloc_addend_size_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Reloc_addend_size_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x77975;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x77975" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -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)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));" (binary_expression "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc))" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc)" (pointer_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)" * (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)puVar30 + -0xc)" * (cast_expression "(uint **)((int)puVar30 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (if_statement "if (!bVar35) goto LAB_00077980;" if (parenthesized_expression "(!bVar35)" ( (unary_expression "!bVar35" ! identifier) )) (goto_statement "goto LAB_00077980;" goto statement_identifier ;)) }))) (if_statement "if ((((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)) &&\n            (local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1)) &&\n           (((__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)))\n           ) {\n          local_bc = *(Relobj **)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar25 + 6);\n          *(undefined4 *)((int)puVar30 + -0xc) = 1;\n          *(undefined4 *)((int)puVar30 + -0x10) = 0;\n          __node_gen_2._M_h = (__hashtable_alloc *)&(local_bc->super_Object).compressed_sections_;\n          *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_2;\n          *(Output_segment ***)((int)puVar30 + -0x18) = &local_7c;\n          *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_2._M_h;\n          *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n          *(undefined4 *)((int)puVar30 + -0x24) = 0x77ddf;\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          puVar30 = (undefined4 *)((int)puVar30 + -4);\n        }" if (parenthesized_expression "((((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)) &&\n            (local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1)) &&\n           (((__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)))\n           )" ( (binary_expression "(((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)) &&\n            (local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1)) &&\n           (((__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)))" (parenthesized_expression "(((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)) &&\n            (local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1))" ( (binary_expression "((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)) &&\n            (local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1)" (parenthesized_expression "((local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1))" ( (binary_expression "(local_da != false) && ((*(byte *)(iVar25 + 4) & 0xf) != 1)" (parenthesized_expression "(local_da != false)" ( (binary_expression "local_da != false" identifier != false) )) && (parenthesized_expression "((*(byte *)(iVar25 + 4) & 0xf) != 1)" ( (binary_expression "(*(byte *)(iVar25 + 4) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar25 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar25 + 4) & 0xf" (pointer_expression "*(byte *)(iVar25 + 4)" * (cast_expression "(byte *)(iVar25 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1)" ( (comma_expression "local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start, ((uint)local_bc & 3) != 1" (field_expression "local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_start" (field_expression "local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold::Output_data*,_std" (assignment_expression "local_bc = (Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold" identifier = (binary_expression "(Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base<gold" (cast_expression "(Relobj *)\n                        local_c0->output_lists_[0x1c].\n                        super__Vector_base" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_c0->output_lists_[0x1c].\n                        super__Vector_base" (subscript_expression "local_c0->output_lists_[0x1c]" (field_expression "local_c0->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) , (binary_expression "((uint)local_bc & 3) != 1" (parenthesized_expression "((uint)local_bc & 3)" ( (binary_expression "(uint)local_bc & 3" (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(((__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)))" ( (parenthesized_expression "((__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0))" ( (binary_expression "(__bucket_type *)0x17 < local_d8 || ((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)" (binary_expression "(__bucket_type *)0x17 < local_d8" (cast_expression "(__bucket_type *)0x17" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) || (parenthesized_expression "((0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0)" ( (binary_expression "(0x843f84U >> ((uint)local_d8 & 0x1f) & 1) == 0" (parenthesized_expression "(0x843f84U >> ((uint)local_d8 & 0x1f) & 1)" ( (binary_expression "0x843f84U >> ((uint)local_d8 & 0x1f) & 1" (binary_expression "0x843f84U >> ((uint)local_d8 & 0x1f)" number_literal >> (parenthesized_expression "((uint)local_d8 & 0x1f)" ( (binary_expression "(uint)local_d8 & 0x1f" (cast_expression "(uint)local_d8" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n          local_bc = *(Relobj **)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar25 + 6);\n          *(undefined4 *)((int)puVar30 + -0xc) = 1;\n          *(undefined4 *)((int)puVar30 + -0x10) = 0;\n          __node_gen_2._M_h = (__hashtable_alloc *)&(local_bc->super_Object).compressed_sections_;\n          *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_2;\n          *(Output_segment ***)((int)puVar30 + -0x18) = &local_7c;\n          *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_2._M_h;\n          *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n          *(undefined4 *)((int)puVar30 + -0x24) = 0x77ddf;\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          puVar30 = (undefined4 *)((int)puVar30 + -4);\n        }" { (expression_statement "local_bc = *(Relobj **)(local_ec + 0x15c);" (assignment_expression "local_bc = *(Relobj **)(local_ec + 0x15c)" identifier = (pointer_expression "*(Relobj **)(local_ec + 0x15c)" * (cast_expression "(Relobj **)(local_ec + 0x15c)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "local_7c = local_c0;" (assignment_expression "local_7c = local_c0" identifier = identifier) ;) (expression_statement "local_78 = (uint)*(ushort *)(iVar25 + 6);" (assignment_expression "local_78 = (uint)*(ushort *)(iVar25 + 6)" identifier = (binary_expression "(uint)*(ushort *)(iVar25 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar25 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 6)" ( (binary_expression "iVar25 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)puVar30 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar30 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__node_gen_2._M_h = (__hashtable_alloc *)&(local_bc->super_Object).compressed_sections_;" (assignment_expression "__node_gen_2._M_h = (__hashtable_alloc *)&(local_bc->super_Object).compressed_sections_" (field_expression "__node_gen_2._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&(local_bc->super_Object).compressed_sections_" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_bc->super_Object).compressed_sections_" & (field_expression "(local_bc->super_Object).compressed_sections_" (parenthesized_expression "(local_bc->super_Object)" ( (field_expression "local_bc->super_Object" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "*(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_2;" (assignment_expression "*(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_2" (pointer_expression "*(__node_gen_type **)((int)puVar30 + -0x14)" * (cast_expression "(__node_gen_type **)((int)puVar30 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_2" & identifier)) ;) (expression_statement "*(Output_segment ***)((int)puVar30 + -0x18) = &local_7c;" (assignment_expression "*(Output_segment ***)((int)puVar30 + -0x18) = &local_7c" (pointer_expression "*(Output_segment ***)((int)puVar30 + -0x18)" * (cast_expression "(Output_segment ***)((int)puVar30 + -0x18)" ( (type_descriptor "Output_segment ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar30 + -0x18)" ( (binary_expression "(int)puVar30 + -0x18" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "*(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_2._M_h;" (assignment_expression "*(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_2._M_h" (pointer_expression "*(__hashtable_alloc **)((int)puVar30 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)puVar30 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x1c)" ( (binary_expression "(int)puVar30 + -0x1c" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "__node_gen_2._M_h" identifier . field_identifier)) ;) (expression_statement "*(undefined1 **)((int)puVar30 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)((int)puVar30 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)((int)puVar30 + -0x20)" * (cast_expression "(undefined1 **)((int)puVar30 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x20)" ( (binary_expression "(int)puVar30 + -0x20" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x24) = 0x77ddf;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x24) = 0x77ddf" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x24)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x24)" ( (binary_expression "(int)puVar30 + -0x24" (cast_expression "(int)puVar30" ( (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 "puVar30 = (undefined4 *)((int)puVar30 + -4);" (assignment_expression "puVar30 = (undefined4 *)((int)puVar30 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar30 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -4)" ( (binary_expression "(int)puVar30 + -4" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "puVar29 = puVar30;" (assignment_expression "puVar29 = puVar30" identifier = identifier) ;) (if_statement "if (symtab != local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            puVar30[-2] = local_e0 + -0x11dc58;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x785c7;\n            do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }\n          puVar29 = puVar30;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pRVar34 = *(Relobj **)(local_ec + 0x158);\n            src_id_1.first = (Relobj *)local_c0;\n            src_id_1.second = (uint)symtab;\n            pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n            dst_id.first = (Relobj *)local_cc;\n            dst_id.second = (uint)local_b4;\n            pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n            if (pcVar5 == (char *)0x0) {\nLAB_00077ba0:\n              puVar30[-4] = &local_8c;\n              local_8c = &src_id_1;\n              puVar30[-5] = 0x77bc1;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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            iVar25 = local_ec;\n            piVar6 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            iVar7 = *piVar6;\n            puVar30[-2] = local_d0;\n            puVar30[-3] = local_d4;\n            puVar30[-4] = local_b4;\n            puVar30[-5] = local_cc;\n            puVar30[-6] = symtab;\n            puVar30[-7] = local_c0;\n            puVar30[-8] = local_ec;\n            puVar30[-9] = piVar6;\n            pcVar8 = *(code **)(iVar7 + 0x104);\n            puVar30[-10] = 0x77c37;\n            (*pcVar8)();\n            pp_Var19 = local_e8;\n            puVar29 = puVar30 + -1;\n            if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);\n      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;\n      puVar30 = puVar29;\n    } while (target != local_b0);\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_114) {\n    *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78222;\n    operator_delete(*(void **)((int)puVar29 + -0x10));\n  }\n  return;\n}" if (parenthesized_expression "(symtab != local_b4)" ( (binary_expression "symtab != local_b4" identifier != identifier) )) (compound_statement "{\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            puVar30[-2] = local_e0 + -0x11dc58;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x785c7;\n            do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }\n          puVar29 = puVar30;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pRVar34 = *(Relobj **)(local_ec + 0x158);\n            src_id_1.first = (Relobj *)local_c0;\n            src_id_1.second = (uint)symtab;\n            pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n            dst_id.first = (Relobj *)local_cc;\n            dst_id.second = (uint)local_b4;\n            pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n            if (pcVar5 == (char *)0x0) {\nLAB_00077ba0:\n              puVar30[-4] = &local_8c;\n              local_8c = &src_id_1;\n              puVar30[-5] = 0x77bc1;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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            iVar25 = local_ec;\n            piVar6 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            iVar7 = *piVar6;\n            puVar30[-2] = local_d0;\n            puVar30[-3] = local_d4;\n            puVar30[-4] = local_b4;\n            puVar30[-5] = local_cc;\n            puVar30[-6] = symtab;\n            puVar30[-7] = local_c0;\n            puVar30[-8] = local_ec;\n            puVar30[-9] = piVar6;\n            pcVar8 = *(code **)(iVar7 + 0x104);\n            puVar30[-10] = 0x77c37;\n            (*pcVar8)();\n            pp_Var19 = local_e8;\n            puVar29 = puVar30 + -1;\n            if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);\n      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;\n      puVar30 = puVar29;\n    } while (target != local_b0);\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_114) {\n    *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78222;\n    operator_delete(*(void **)((int)puVar29 + -0x10));\n  }\n  return;\n}" { (expression_statement "local_cc = local_c0;" (assignment_expression "local_cc = local_c0" identifier = identifier) ;) (labeled_statement "LAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            puVar30[-2] = local_e0 + -0x11dc58;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x785c7;\n            do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }" statement_identifier : (if_statement "if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            puVar30[-2] = local_e0 + -0x11dc58;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x785c7;\n            do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }" if (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) == 0" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n            puVar30[-2] = local_e0 + -0x11dc58;\n            puVar30[-3] = 0x5c;\n            puVar30[-4] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n            puVar30[-5] = 0x785c7;\n            do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);\n          }" { (expression_statement "puVar30[-2] = local_e0 + -0x11dc58;" (assignment_expression "puVar30[-2] = local_e0 + -0x11dc58" (subscript_expression "puVar30[-2]" identifier [ number_literal ]) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "puVar30[-3] = 0x5c;" (assignment_expression "puVar30[-3] = 0x5c" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30[-4] = local_e0 + -0x131d93;" (assignment_expression "puVar30[-4] = local_e0 + -0x131d93" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) comment (expression_statement "puVar30[-5] = 0x785c7;" (assignment_expression "puVar30[-5] = 0x785c7" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);" (call_expression "do_gold_unreachable((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2])" identifier (argument_list "((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2])" ( (cast_expression "(char *)puVar30[-4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-4]" identifier [ number_literal ])) , (subscript_expression "puVar30[-3]" identifier [ number_literal ]) , (cast_expression "(char *)puVar30[-2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-2]" identifier [ number_literal ])) ))) ;) }))) (expression_statement "puVar29 = puVar30;" (assignment_expression "puVar29 = puVar30" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pRVar34 = *(Relobj **)(local_ec + 0x158);\n            src_id_1.first = (Relobj *)local_c0;\n            src_id_1.second = (uint)symtab;\n            pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n            dst_id.first = (Relobj *)local_cc;\n            dst_id.second = (uint)local_b4;\n            pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n            if (pcVar5 == (char *)0x0) {\nLAB_00077ba0:\n              puVar30[-4] = &local_8c;\n              local_8c = &src_id_1;\n              puVar30[-5] = 0x77bc1;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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            iVar25 = local_ec;\n            piVar6 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            iVar7 = *piVar6;\n            puVar30[-2] = local_d0;\n            puVar30[-3] = local_d4;\n            puVar30[-4] = local_b4;\n            puVar30[-5] = local_cc;\n            puVar30[-6] = symtab;\n            puVar30[-7] = local_c0;\n            puVar30[-8] = local_ec;\n            puVar30[-9] = piVar6;\n            pcVar8 = *(code **)(iVar7 + 0x104);\n            puVar30[-10] = 0x77c37;\n            (*pcVar8)();\n            pp_Var19 = local_e8;\n            puVar29 = puVar30 + -1;\n            if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);\n      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;\n      puVar30 = puVar29;\n    } while (target != local_b0);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) + 0x18b1" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pRVar34 = *(Relobj **)(local_ec + 0x158);\n            src_id_1.first = (Relobj *)local_c0;\n            src_id_1.second = (uint)symtab;\n            pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n            dst_id.first = (Relobj *)local_cc;\n            dst_id.second = (uint)local_b4;\n            pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n            if (pcVar5 == (char *)0x0) {\nLAB_00077ba0:\n              puVar30[-4] = &local_8c;\n              local_8c = &src_id_1;\n              puVar30[-5] = 0x77bc1;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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            iVar25 = local_ec;\n            piVar6 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            iVar7 = *piVar6;\n            puVar30[-2] = local_d0;\n            puVar30[-3] = local_d4;\n            puVar30[-4] = local_b4;\n            puVar30[-5] = local_cc;\n            puVar30[-6] = symtab;\n            puVar30[-7] = local_c0;\n            puVar30[-8] = local_ec;\n            puVar30[-9] = piVar6;\n            pcVar8 = *(code **)(iVar7 + 0x104);\n            puVar30[-10] = 0x77c37;\n            (*pcVar8)();\n            pp_Var19 = local_e8;\n            puVar29 = puVar30 + -1;\n            if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);\n      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;\n      puVar30 = puVar29;\n    } while (target != local_b0);\n  }" { (expression_statement "pRVar34 = *(Relobj **)(local_ec + 0x158);" (assignment_expression "pRVar34 = *(Relobj **)(local_ec + 0x158)" identifier = (pointer_expression "*(Relobj **)(local_ec + 0x158)" * (cast_expression "(Relobj **)(local_ec + 0x158)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_ec + 0x158)" ( (binary_expression "local_ec + 0x158" identifier + number_literal) ))))) ;) (expression_statement "src_id_1.first = (Relobj *)local_c0;" (assignment_expression "src_id_1.first = (Relobj *)local_c0" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_c0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id_1.second = (uint)symtab;" (assignment_expression "src_id_1.second = (uint)symtab" (field_expression "src_id_1.second" identifier . field_identifier) = (cast_expression "(uint)symtab" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;" (assignment_expression "pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8" identifier = (binary_expression "(pRVar34->super_Object).name_.field_2._M_local_buf + 8" (field_expression "(pRVar34->super_Object).name_.field_2._M_local_buf" (field_expression "(pRVar34->super_Object).name_.field_2" (field_expression "(pRVar34->super_Object).name_" (parenthesized_expression "(pRVar34->super_Object)" ( (field_expression "pRVar34->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) + number_literal)) ;) (expression_statement "dst_id.first = (Relobj *)local_cc;" (assignment_expression "dst_id.first = (Relobj *)local_cc" (field_expression "dst_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_cc" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "dst_id.second = (uint)local_b4;" (assignment_expression "dst_id.second = (uint)local_b4" (field_expression "dst_id.second" identifier . field_identifier) = (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);" (assignment_expression "pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc)" identifier = (pointer_expression "*(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc)" * (cast_expression "(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(pRVar34->super_Object).name_.field_2 + 0xc)" ( (binary_expression "(int)&(pRVar34->super_Object).name_.field_2 + 0xc" (cast_expression "(int)&(pRVar34->super_Object).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pRVar34->super_Object).name_.field_2" & (field_expression "(pRVar34->super_Object).name_.field_2" (field_expression "(pRVar34->super_Object).name_" (parenthesized_expression "(pRVar34->super_Object)" ( (field_expression "pRVar34->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\nLAB_00077ba0:\n              puVar30[-4] = &local_8c;\n              local_8c = &src_id_1;\n              puVar30[-5] = 0x77bc1;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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            iVar25 = local_ec;\n            piVar6 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            iVar7 = *piVar6;\n            puVar30[-2] = local_d0;\n            puVar30[-3] = local_d4;\n            puVar30[-4] = local_b4;\n            puVar30[-5] = local_cc;\n            puVar30[-6] = symtab;\n            puVar30[-7] = local_c0;\n            puVar30[-8] = local_ec;\n            puVar30[-9] = piVar6;\n            pcVar8 = *(code **)(iVar7 + 0x104);\n            puVar30[-10] = 0x77c37;\n            (*pcVar8)();\n            pp_Var19 = local_e8;\n            puVar29 = puVar30 + -1;\n            if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);\n      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;\n      puVar30 = puVar29;\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00077ba0:\n              puVar30[-4] = &local_8c;\n              local_8c = &src_id_1;\n              puVar30[-5] = 0x77bc1;\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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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            iVar25 = local_ec;\n            piVar6 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }\n            iVar7 = *piVar6;\n            puVar30[-2] = local_d0;\n            puVar30[-3] = local_d4;\n            puVar30[-4] = local_b4;\n            puVar30[-5] = local_cc;\n            puVar30[-6] = symtab;\n            puVar30[-7] = local_c0;\n            puVar30[-8] = local_ec;\n            puVar30[-9] = piVar6;\n            pcVar8 = *(code **)(iVar7 + 0x104);\n            puVar30[-10] = 0x77c37;\n            (*pcVar8)();\n            pp_Var19 = local_e8;\n            puVar29 = puVar30 + -1;\n            if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);\n      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;\n      puVar30 = puVar29;\n    }" { (labeled_statement "LAB_00077ba0:\n              puVar30[-4] = &local_8c;" statement_identifier : (expression_statement "puVar30[-4] = &local_8c;" (assignment_expression "puVar30[-4] = &local_8c" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = (pointer_expression "&local_8c" & identifier)) ;)) (expression_statement "local_8c = &src_id_1;" (assignment_expression "local_8c = &src_id_1" identifier = (pointer_expression "&src_id_1" & identifier)) ;) (expression_statement "puVar30[-5] = 0x77bc1;" (assignment_expression "puVar30[-5] = 0x77bc1" (subscript_expression "puVar30[-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)) : :) (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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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                      ();" (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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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                      ()" (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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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 "(_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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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                      ()" ( (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                          *)puVar30[-4],(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18)" (binary_expression "_unsigned_int>_>_>_>_>_>\n                          *)puVar30[-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 "*)puVar30[-4]" * (ERROR ")" )) (subscript_expression "puVar30[-4]" identifier [ number_literal ]))) , (comma_expression "(_Base_ptr)puVar30[-3],\n                         (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18)" (cast_expression "(_Base_ptr)puVar30[-3]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar30[-3]" identifier [ number_literal ])) , (call_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18)" (parenthesized_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else {\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }\n            __node_gen._M_h = (__hashtable_alloc *)" ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);\n              pcVar24 = local_a8;\n            }\n            else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-2],\n                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30)" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-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 "&> *)puVar30[-2]" & (ERROR ">" >) (pointer_expression "*)puVar30[-2]" * (ERROR ")" )) (subscript_expression "puVar30[-2]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30)" ( (comma_expression "tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30" (binary_expression "tuple<> *)puVar30[-1]" identifier < (ERROR ">" >) (pointer_expression "*)puVar30[-1]" * (ERROR ")" )) (subscript_expression "puVar30[-1]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)*puVar30" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar30" * identifier))) ))) ; (assignment_expression "pcVar24 = local_a8" identifier = identifier) ; } else) (compound_statement "{\n              local_bc = pRVar34;\n              pcVar23 = pcVar1;\n              do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;\n            }" { (expression_statement "local_bc = pRVar34;" (assignment_expression "local_bc = pRVar34" identifier = identifier) ;) (expression_statement "pcVar23 = pcVar1;" (assignment_expression "pcVar23 = pcVar1" identifier = identifier) ;) (do_statement "do {\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              } while (*(char **)pcVar12 != (char *)0x0);" do (compound_statement "{\n                while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }\n                pcVar12 = pcVar24 + 0xc;\n                pcVar5 = *(char **)pcVar12;\n                pcVar24 = pcVar23;\n              }" { (while_statement "while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }" while (parenthesized_expression "((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14))))))" ( (parenthesized_expression "(pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))" ( (comma_expression "pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14))))" (assignment_expression "pcVar24 = pcVar5" identifier = identifier) , (binary_expression "local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                       ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14))))" (binary_expression "local_c0 <= *(Output_segment **)(pcVar24 + 0x10)" identifier <= (pointer_expression "*(Output_segment **)(pcVar24 + 0x10)" * (cast_expression "(Output_segment **)(pcVar24 + 0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x10)" ( (binary_expression "pcVar24 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14))))" ( (parenthesized_expression "(local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))" ( (binary_expression "local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                        (symtab <= *(Symbol_table **)(pcVar24 + 0x14))" (binary_expression "local_c0 != *(Output_segment **)(pcVar24 + 0x10)" identifier != (pointer_expression "*(Output_segment **)(pcVar24 + 0x10)" * (cast_expression "(Output_segment **)(pcVar24 + 0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x10)" ( (binary_expression "pcVar24 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(symtab <= *(Symbol_table **)(pcVar24 + 0x14))" ( (binary_expression "symtab <= *(Symbol_table **)(pcVar24 + 0x14)" identifier <= (pointer_expression "*(Symbol_table **)(pcVar24 + 0x14)" * (cast_expression "(Symbol_table **)(pcVar24 + 0x14)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x14)" ( (binary_expression "pcVar24 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                  pcVar5 = *(char **)(pcVar24 + 8);\n                  pcVar23 = pcVar24;\n                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;\n                }" { (expression_statement "pcVar5 = *(char **)(pcVar24 + 8);" (assignment_expression "pcVar5 = *(char **)(pcVar24 + 8)" identifier = (pointer_expression "*(char **)(pcVar24 + 8)" * (cast_expression "(char **)(pcVar24 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 8)" ( (binary_expression "pcVar24 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = pcVar24;" (assignment_expression "pcVar23 = pcVar24" identifier = identifier) ;) (if_statement "if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;" if (parenthesized_expression "(*(char **)(pcVar24 + 8) == (char *)0x0)" ( (binary_expression "*(char **)(pcVar24 + 8) == (char *)0x0" (pointer_expression "*(char **)(pcVar24 + 8)" * (cast_expression "(char **)(pcVar24 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 8)" ( (binary_expression "pcVar24 + 8" identifier + number_literal) )))) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00077b7c;" goto statement_identifier ;)) })) (expression_statement "pcVar12 = pcVar24 + 0xc;" (assignment_expression "pcVar12 = pcVar24 + 0xc" identifier = (binary_expression "pcVar24 + 0xc" identifier + number_literal)) ;) (expression_statement "pcVar5 = *(char **)pcVar12;" (assignment_expression "pcVar5 = *(char **)pcVar12" identifier = (pointer_expression "*(char **)pcVar12" * (cast_expression "(char **)pcVar12" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar24 = pcVar23;" (assignment_expression "pcVar24 = pcVar23" identifier = identifier) ;) }) while (parenthesized_expression "(*(char **)pcVar12 != (char *)0x0)" ( (binary_expression "*(char **)pcVar12 != (char *)0x0" (pointer_expression "*(char **)pcVar12" * (cast_expression "(char **)pcVar12" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_00077b7c:\n              if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;" statement_identifier : (if_statement "if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00077ba0;" if (parenthesized_expression "(((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14)))))" ( (binary_expression "((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                 ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))" (parenthesized_expression "((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10)))" ( (binary_expression "(pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))" (parenthesized_expression "(pcVar24 == pcVar1)" ( (binary_expression "pcVar24 == pcVar1" identifier == identifier) )) || (parenthesized_expression "(local_c0 < *(Output_segment **)(pcVar24 + 0x10))" ( (binary_expression "local_c0 < *(Output_segment **)(pcVar24 + 0x10)" identifier < (pointer_expression "*(Output_segment **)(pcVar24 + 0x10)" * (cast_expression "(Output_segment **)(pcVar24 + 0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x10)" ( (binary_expression "pcVar24 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))))" ( (parenthesized_expression "(local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14)))" ( (binary_expression "local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                  (symtab < *(Symbol_table **)(pcVar24 + 0x14))" (binary_expression "local_c0 == *(Output_segment **)(pcVar24 + 0x10)" identifier == (pointer_expression "*(Output_segment **)(pcVar24 + 0x10)" * (cast_expression "(Output_segment **)(pcVar24 + 0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x10)" ( (binary_expression "pcVar24 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(symtab < *(Symbol_table **)(pcVar24 + 0x14))" ( (binary_expression "symtab < *(Symbol_table **)(pcVar24 + 0x14)" identifier < (pointer_expression "*(Symbol_table **)(pcVar24 + 0x14)" * (cast_expression "(Symbol_table **)(pcVar24 + 0x14)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x14)" ( (binary_expression "pcVar24 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_00077ba0;" goto statement_identifier ;))) }) (ERROR "__node_gen._M_h = (__hashtable_alloc *" identifier . identifier = ( identifier *) )) (argument_list "(pcVar24 + 0x18)" ( (binary_expression "pcVar24 + 0x18" identifier + number_literal) ))))) (ERROR ";\n            puVar30[-3] = 1;\n            puVar30[-4] = 0;\n            puVar30[-5] = local_110;\n            puVar30[-6] = &dst_id;\n            puVar30[-7] = __node_gen._M_h;\n            puVar30[-8] = local_f0;\n            puVar30[-9] = 0x77bf0;\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                      (" ; identifier [ number_literal ] = number_literal ; identifier [ number_literal ] = number_literal ; identifier [ number_literal ] = identifier ; identifier [ number_literal ] = & identifier ; identifier [ number_literal ] = identifier . identifier ; identifier [ number_literal ] = identifier ; identifier [ number_literal ] = number_literal ; 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 : : 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 "iVar25 = local_ec;" (assignment_expression "iVar25 = local_ec" identifier = identifier) ;) (expression_statement "piVar6 = *(int **)(*(int *)local_e4 + 0xc);" (assignment_expression "piVar6 = *(int **)(*(int *)local_e4 + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)local_e4 + 0xc)" * (cast_expression "(int **)(*(int *)local_e4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)local_e4 + 0xc)" ( (binary_expression "*(int *)local_e4 + 0xc" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar30[-3] = local_e0 + -0x11dfa8;\n              puVar30[-4] = 0x73;\n              puVar30[-5] = local_e0 + -0x131d93;\n                    /* WARNING: Subroutine does not return */\n              puVar30[-6] = 0x78627;\n              do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);\n            }" { (expression_statement "puVar30[-3] = local_e0 + -0x11dfa8;" (assignment_expression "puVar30[-3] = local_e0 + -0x11dfa8" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = (binary_expression "local_e0 + -0x11dfa8" identifier + number_literal)) ;) (expression_statement "puVar30[-4] = 0x73;" (assignment_expression "puVar30[-4] = 0x73" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30[-5] = local_e0 + -0x131d93;" (assignment_expression "puVar30[-5] = local_e0 + -0x131d93" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) comment (expression_statement "puVar30[-6] = 0x78627;" (assignment_expression "puVar30[-6] = 0x78627" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);" (call_expression "do_gold_unreachable((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3])" identifier (argument_list "((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3])" ( (cast_expression "(char *)puVar30[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-5]" identifier [ number_literal ])) , (subscript_expression "puVar30[-4]" identifier [ number_literal ]) , (cast_expression "(char *)puVar30[-3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-3]" identifier [ number_literal ])) ))) ;) })) (expression_statement "iVar7 = *piVar6;" (assignment_expression "iVar7 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "puVar30[-2] = local_d0;" (assignment_expression "puVar30[-2] = local_d0" (subscript_expression "puVar30[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-3] = local_d4;" (assignment_expression "puVar30[-3] = local_d4" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-4] = local_b4;" (assignment_expression "puVar30[-4] = local_b4" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-5] = local_cc;" (assignment_expression "puVar30[-5] = local_cc" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-6] = symtab;" (assignment_expression "puVar30[-6] = symtab" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-7] = local_c0;" (assignment_expression "puVar30[-7] = local_c0" (subscript_expression "puVar30[-7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-8] = local_ec;" (assignment_expression "puVar30[-8] = local_ec" (subscript_expression "puVar30[-8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-9] = piVar6;" (assignment_expression "puVar30[-9] = piVar6" (subscript_expression "puVar30[-9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar8 = *(code **)(iVar7 + 0x104);" (assignment_expression "pcVar8 = *(code **)(iVar7 + 0x104)" identifier = (pointer_expression "*(code **)(iVar7 + 0x104)" * (cast_expression "(code **)(iVar7 + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x104)" ( (binary_expression "iVar7 + 0x104" identifier + number_literal) ))))) ;) (expression_statement "puVar30[-10] = 0x77c37;" (assignment_expression "puVar30[-10] = 0x77c37" (subscript_expression "puVar30[-10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pp_Var19 = local_e8;" (assignment_expression "pp_Var19 = local_e8" identifier = identifier) ;) (expression_statement "puVar29 = puVar30 + -1;" (assignment_expression "puVar29 = puVar30 + -1" identifier = (binary_expression "puVar30 + -1" identifier + number_literal)) ;) (if_statement "if (local_e8 != (_func_int_varargs **)0x0) {\n              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }" if (parenthesized_expression "(local_e8 != (_func_int_varargs **)0x0)" ( (binary_expression "local_e8 != (_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              iVar25 = *(int *)(iVar25 + 0x158);\n              puVar30[-5] = local_e8;\n              local_c4 = &src_id;\n              local_bc = (Relobj *)&local_2c;\n              src_id.first = (Relobj *)&local_2c;\n              puVar30[-6] = 0x77c74;\n              sVar18 = strlen((char *)puVar30[-5]);\n              pSVar14 = local_c4;\n              puVar30[-2] = 0;\n              puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);\n              puVar30[-4] = pp_Var19;\n              puVar30[-5] = local_c4;\n              puVar30[-6] = 0x77c89;\n              std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n              _M_construct<char_const*>();\n              puVar30[-3] = pSVar14;\n              puVar30[-4] = iVar25 + 0x44;\n              puVar30[-5] = &local_ac;\n              puVar30[-6] = 0x77c9d;\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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;\n        if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        uVar28 = (int)pSVar4 - (int)pSVar10;\n        ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;\n        local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;\n        if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }\n        src_id_1.first = (Relobj *)ppOVar20[uVar28];\n        if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }\n        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }\nLAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;\n        iVar25 = 8;\n        pbVar31 = (byte *)(local_e0 + -0x11cf31);\n        pp_Var32 = pp_Var19;\n        do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);\n        bVar36 = false;\n        bVar35 = (!bVar35 && !bVar37) == bVar35;\n        if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }\n        if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }\n        puVar29 = puVar30;\n        if (bVar27 != 0) goto LAB_00077afb;\n      }" { (expression_statement "iVar25 = *(int *)(iVar25 + 0x158);" (assignment_expression "iVar25 = *(int *)(iVar25 + 0x158)" identifier = (pointer_expression "*(int *)(iVar25 + 0x158)" * (cast_expression "(int *)(iVar25 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x158)" ( (binary_expression "iVar25 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "puVar30[-5] = local_e8;" (assignment_expression "puVar30[-5] = local_e8" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_c4 = &src_id;" (assignment_expression "local_c4 = &src_id" identifier = (pointer_expression "&src_id" & identifier)) ;) (expression_statement "local_bc = (Relobj *)&local_2c;" (assignment_expression "local_bc = (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 "puVar30[-6] = 0x77c74;" (assignment_expression "puVar30[-6] = 0x77c74" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar18 = strlen((char *)puVar30[-5]);" (assignment_expression "sVar18 = strlen((char *)puVar30[-5])" identifier = (call_expression "strlen((char *)puVar30[-5])" identifier (argument_list "((char *)puVar30[-5])" ( (cast_expression "(char *)puVar30[-5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-5]" identifier [ number_literal ])) )))) ;) (expression_statement "pSVar14 = local_c4;" (assignment_expression "pSVar14 = local_c4" identifier = identifier) ;) (expression_statement "puVar30[-2] = 0;" (assignment_expression "puVar30[-2] = 0" (subscript_expression "puVar30[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar30[-3] = (byte *)((int)pp_Var19 + sVar18);" (assignment_expression "puVar30[-3] = (byte *)((int)pp_Var19 + sVar18)" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = (cast_expression "(byte *)((int)pp_Var19 + sVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_Var19 + sVar18)" ( (binary_expression "(int)pp_Var19 + sVar18" (cast_expression "(int)pp_Var19" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar30[-4] = pp_Var19;" (assignment_expression "puVar30[-4] = pp_Var19" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-5] = local_c4;" (assignment_expression "puVar30[-5] = local_c4" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-6] = 0x77c89;" (assignment_expression "puVar30[-6] = 0x77c89" (subscript_expression "puVar30[-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 "puVar30[-3] = pSVar14;" (assignment_expression "puVar30[-3] = pSVar14" (subscript_expression "puVar30[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar30[-4] = iVar25 + 0x44;" (assignment_expression "puVar30[-4] = iVar25 + 0x44" (subscript_expression "puVar30[-4]" identifier [ number_literal ]) = (binary_expression "iVar25 + 0x44" identifier + number_literal)) ;) (expression_statement "puVar30[-5] = &local_ac;" (assignment_expression "puVar30[-5] = &local_ac" (subscript_expression "puVar30[-5]" identifier [ number_literal ]) = (pointer_expression "&local_ac" & identifier)) ;) (expression_statement "puVar30[-6] = 0x77c9d;" (assignment_expression "puVar30[-6] = 0x77c9d" (subscript_expression "puVar30[-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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage;" (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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage" (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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage" 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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage" ( (field_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage" (field_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl" (binary_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold::Output_data*,_std" (binary_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base<gold" (field_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe].\n                  super__Vector_base" (subscript_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_[0xe]" (field_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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)\n                  local_c0->output_lists_" (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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_) {\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *)" ( (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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4]);\n              p_Var9 = local_ac;\n              if (src_id.first != local_bc) {\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }\n              pRVar34 = *(Relobj **)(local_ec + 0x158);\n              puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_)" (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                      *)puVar30[-5],\n                     (basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-4])" (binary_expression "_unsigned_int>_>_>_>_>_>\n                      *)puVar30[-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 "*)puVar30[-5]" * (ERROR ")" )) (subscript_expression "puVar30[-5]" identifier [ number_literal ]))) , (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)\n                     puVar30[-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                     puVar30[-4]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)\n                     puVar30[-4]" * (ERROR ")" )) (subscript_expression "puVar30[-4]" identifier [ number_literal ]))) ))) ; (call_expression "p_Var9 = local_ac;\n              if (src_id.first != local_bc)" (assignment_expression "p_Var9 = local_ac" identifier = identifier) (ERROR ";\n              if" ; if) (argument_list "(src_id.first != local_bc)" ( (binary_expression "src_id.first != local_bc" (field_expression "src_id.first" identifier . field_identifier) != identifier) ))) (compound_statement "{\n                puVar30[-6] = src_id.first;\n                puVar30[-7] = 0x77cc0;\n                operator_delete((void *)puVar30[-6]);\n              }" { (expression_statement "puVar30[-6] = src_id.first;" (assignment_expression "puVar30[-6] = src_id.first" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = (field_expression "src_id.first" identifier . field_identifier)) ;) (expression_statement "puVar30[-7] = 0x77cc0;" (assignment_expression "puVar30[-7] = 0x77cc0" (subscript_expression "puVar30[-7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "operator_delete((void *)puVar30[-6]);" (call_expression "operator_delete((void *)puVar30[-6])" identifier (argument_list "((void *)puVar30[-6])" ( (cast_expression "(void *)puVar30[-6]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-6]" identifier [ number_literal ])) ))) ;) }) (assignment_expression "pRVar34 = *(Relobj **)(local_ec + 0x158)" identifier = (pointer_expression "*(Relobj **)(local_ec + 0x158)" * (cast_expression "(Relobj **)(local_ec + 0x158)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_ec + 0x158)" ( (binary_expression "local_ec + 0x158" identifier + number_literal) ))))) ; (call_expression "puVar29 = puVar30 + -2;\n              if (p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_)" (assignment_expression "puVar29 = puVar30 + -2" identifier = (binary_expression "puVar30 + -2" identifier + number_literal)) (ERROR ";\n              if" ; if) (argument_list "(p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_)" ( (binary_expression "p_Var9 != (_Hash_node_base *)&pRVar34->object_merge_map_" identifier != (cast_expression "(_Hash_node_base *)&pRVar34->object_merge_map_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pRVar34->object_merge_map_" & (field_expression "pRVar34->object_merge_map_" identifier -> field_identifier)))) )))) (compound_statement "{\n                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;\n                src_id.second = (uint)symtab;\n                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);\n                src_id.first = (Relobj *)local_c0;\n                if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }\n              }" { (expression_statement "pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;" (assignment_expression "pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8" identifier = (binary_expression "(pRVar34->super_Object).name_.field_2._M_local_buf + 8" (field_expression "(pRVar34->super_Object).name_.field_2._M_local_buf" (field_expression "(pRVar34->super_Object).name_.field_2" (field_expression "(pRVar34->super_Object).name_" (parenthesized_expression "(pRVar34->super_Object)" ( (field_expression "pRVar34->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) + number_literal)) ;) (expression_statement "src_id.second = (uint)symtab;" (assignment_expression "src_id.second = (uint)symtab" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)symtab" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);" (assignment_expression "pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc)" identifier = (pointer_expression "*(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc)" * (cast_expression "(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(pRVar34->super_Object).name_.field_2 + 0xc)" ( (binary_expression "(int)&(pRVar34->super_Object).name_.field_2 + 0xc" (cast_expression "(int)&(pRVar34->super_Object).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pRVar34->super_Object).name_.field_2" & (field_expression "(pRVar34->super_Object).name_.field_2" (field_expression "(pRVar34->super_Object).name_" (parenthesized_expression "(pRVar34->super_Object)" ( (field_expression "pRVar34->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "src_id.first = (Relobj *)local_c0;" (assignment_expression "src_id.first = (Relobj *)local_c0" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_c0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pcVar5 == (char *)0x0) {\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00078190:\n                  puVar30[-6] = &local_88;\n                  local_88 = local_c4;\n                  puVar30[-7] = 0x781b4;\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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                  *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                  *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;\n                  *(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;\n                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);\n                  *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                  *(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;\n                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);\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                  puVar29 = (undefined4 *)((int)puVar30 + -4);\n                  puVar30 = (undefined4 *)((int)puVar30 + -4);\n                }" { (labeled_statement "LAB_00078190:\n                  puVar30[-6] = &local_88;" statement_identifier : (expression_statement "puVar30[-6] = &local_88;" (assignment_expression "puVar30[-6] = &local_88" (subscript_expression "puVar30[-6]" identifier [ number_literal ]) = (pointer_expression "&local_88" & identifier)) ;)) (expression_statement "local_88 = local_c4;" (assignment_expression "local_88 = local_c4" identifier = identifier) ;) (expression_statement "puVar30[-7] = 0x781b4;" (assignment_expression "puVar30[-7] = 0x781b4" (subscript_expression "puVar30[-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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1;" (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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1" (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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1" ( (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::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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt) {\n                  *(undefined4 *)((int)puVar30 + -0xc) = 1" (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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt)" ( (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                              *)puVar30[-6],(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt" (binary_expression "_unsigned_int>_>_>_>_>_>\n                              *)puVar30[-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 "*)puVar30[-6]" * (ERROR ")" )) (subscript_expression "puVar30[-6]" identifier [ number_literal ]))) , (comma_expression "(_Base_ptr)puVar30[-5],\n                             (tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt" (cast_expression "(_Base_ptr)puVar30[-5]" ( (type_descriptor "_Base_ptr" type_identifier) ) (subscript_expression "puVar30[-5]" identifier [ number_literal ])) , (assignment_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)0x0;\n                    p_Var9 = p_Var9->_M_nxt" (parenthesized_expression "(tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else {\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }\n                puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *)" ( (ERROR "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);\n                  pcVar24 = local_a8;\n                }\n                else" (comma_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-4],\n                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2])" (binary_expression "tuple<const_std::pair<gold::Relobj*,_unsigned_int>&> *)puVar30[-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 "&> *)puVar30[-4]" & (ERROR ">" >) (pointer_expression "*)puVar30[-4]" * (ERROR ")" )) (subscript_expression "puVar30[-4]" identifier [ number_literal ])))) , (parenthesized_expression "(tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2])" ( (comma_expression "tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]" (binary_expression "tuple<> *)puVar30[-3]" identifier < (ERROR ">" >) (pointer_expression "*)puVar30[-3]" * (ERROR ")" )) (subscript_expression "puVar30[-3]" identifier [ number_literal ]))) , (cast_expression "(piecewise_construct_t *)puVar30[-2]" ( (type_descriptor "piecewise_construct_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[-2]" identifier [ number_literal ]))) ))) ; (assignment_expression "pcVar24 = local_a8" identifier = identifier) ; } else) (compound_statement "{\n                  local_bc = pRVar34;\n                  pcVar23 = pcVar1;\n                  do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);\nLAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;\n                }" { (expression_statement "local_bc = pRVar34;" (assignment_expression "local_bc = pRVar34" identifier = identifier) ;) (expression_statement "pcVar23 = pcVar1;" (assignment_expression "pcVar23 = pcVar1" identifier = identifier) ;) (do_statement "do {\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  } while (*(char **)pcVar12 != (char *)0x0);" do (compound_statement "{\n                    while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }\n                    pcVar12 = pcVar24 + 0xc;\n                    pcVar5 = *(char **)pcVar12;\n                    pcVar24 = pcVar23;\n                  }" { (while_statement "while ((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))) {\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }" while (parenthesized_expression "((pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14))))))" ( (parenthesized_expression "(pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))))" ( (comma_expression "pcVar24 = pcVar5, local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14))))" (assignment_expression "pcVar24 = pcVar5" identifier = identifier) , (binary_expression "local_c0 <= *(Output_segment **)(pcVar24 + 0x10) &&\n                           ((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14))))" (binary_expression "local_c0 <= *(Output_segment **)(pcVar24 + 0x10)" identifier <= (pointer_expression "*(Output_segment **)(pcVar24 + 0x10)" * (cast_expression "(Output_segment **)(pcVar24 + 0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x10)" ( (binary_expression "pcVar24 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "((local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14))))" ( (parenthesized_expression "(local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14)))" ( (binary_expression "local_c0 != *(Output_segment **)(pcVar24 + 0x10) ||\n                            (symtab <= *(Symbol_table **)(pcVar24 + 0x14))" (binary_expression "local_c0 != *(Output_segment **)(pcVar24 + 0x10)" identifier != (pointer_expression "*(Output_segment **)(pcVar24 + 0x10)" * (cast_expression "(Output_segment **)(pcVar24 + 0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x10)" ( (binary_expression "pcVar24 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(symtab <= *(Symbol_table **)(pcVar24 + 0x14))" ( (binary_expression "symtab <= *(Symbol_table **)(pcVar24 + 0x14)" identifier <= (pointer_expression "*(Symbol_table **)(pcVar24 + 0x14)" * (cast_expression "(Symbol_table **)(pcVar24 + 0x14)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x14)" ( (binary_expression "pcVar24 + 0x14" identifier + number_literal) ))))) ))) )) )))) )) )) (compound_statement "{\n                      pcVar5 = *(char **)(pcVar24 + 8);\n                      pcVar23 = pcVar24;\n                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;\n                    }" { (expression_statement "pcVar5 = *(char **)(pcVar24 + 8);" (assignment_expression "pcVar5 = *(char **)(pcVar24 + 8)" identifier = (pointer_expression "*(char **)(pcVar24 + 8)" * (cast_expression "(char **)(pcVar24 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 8)" ( (binary_expression "pcVar24 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = pcVar24;" (assignment_expression "pcVar23 = pcVar24" identifier = identifier) ;) (if_statement "if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;" if (parenthesized_expression "(*(char **)(pcVar24 + 8) == (char *)0x0)" ( (binary_expression "*(char **)(pcVar24 + 8) == (char *)0x0" (pointer_expression "*(char **)(pcVar24 + 8)" * (cast_expression "(char **)(pcVar24 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 8)" ( (binary_expression "pcVar24 + 8" identifier + number_literal) )))) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00077d27;" goto statement_identifier ;)) })) (expression_statement "pcVar12 = pcVar24 + 0xc;" (assignment_expression "pcVar12 = pcVar24 + 0xc" identifier = (binary_expression "pcVar24 + 0xc" identifier + number_literal)) ;) (expression_statement "pcVar5 = *(char **)pcVar12;" (assignment_expression "pcVar5 = *(char **)pcVar12" identifier = (pointer_expression "*(char **)pcVar12" * (cast_expression "(char **)pcVar12" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar24 = pcVar23;" (assignment_expression "pcVar24 = pcVar23" identifier = identifier) ;) }) while (parenthesized_expression "(*(char **)pcVar12 != (char *)0x0)" ( (binary_expression "*(char **)pcVar12 != (char *)0x0" (pointer_expression "*(char **)pcVar12" * (cast_expression "(char **)pcVar12" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_00077d27:\n                  if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;" statement_identifier : (if_statement "if (((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))) goto LAB_00078190;" if (parenthesized_expression "(((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14)))))" ( (binary_expression "((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))) ||\n                     ((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))" (parenthesized_expression "((pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10)))" ( (binary_expression "(pcVar24 == pcVar1) || (local_c0 < *(Output_segment **)(pcVar24 + 0x10))" (parenthesized_expression "(pcVar24 == pcVar1)" ( (binary_expression "pcVar24 == pcVar1" identifier == identifier) )) || (parenthesized_expression "(local_c0 < *(Output_segment **)(pcVar24 + 0x10))" ( (binary_expression "local_c0 < *(Output_segment **)(pcVar24 + 0x10)" identifier < (pointer_expression "*(Output_segment **)(pcVar24 + 0x10)" * (cast_expression "(Output_segment **)(pcVar24 + 0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x10)" ( (binary_expression "pcVar24 + 0x10" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "((local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))))" ( (parenthesized_expression "(local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14)))" ( (binary_expression "local_c0 == *(Output_segment **)(pcVar24 + 0x10) &&\n                      (symtab < *(Symbol_table **)(pcVar24 + 0x14))" (binary_expression "local_c0 == *(Output_segment **)(pcVar24 + 0x10)" identifier == (pointer_expression "*(Output_segment **)(pcVar24 + 0x10)" * (cast_expression "(Output_segment **)(pcVar24 + 0x10)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x10)" ( (binary_expression "pcVar24 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(symtab < *(Symbol_table **)(pcVar24 + 0x14))" ( (binary_expression "symtab < *(Symbol_table **)(pcVar24 + 0x14)" identifier < (pointer_expression "*(Symbol_table **)(pcVar24 + 0x14)" * (cast_expression "(Symbol_table **)(pcVar24 + 0x14)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x14)" ( (binary_expression "pcVar24 + 0x14" identifier + number_literal) ))))) ))) )) ))) )) (goto_statement "goto LAB_00078190;" goto statement_identifier ;))) }) (ERROR "puVar29 = puVar30 + -2;\n                puVar30 = puVar30 + -2;\n                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (_Hash_node_base *" identifier = identifier + number_literal ; identifier = identifier + number_literal ; for ( identifier = identifier [ number_literal ] . identifier ; identifier != ( identifier *) )) (ERROR "0x0;\n                    p_Var9" number_literal ; identifier) = (field_expression "p_Var9->_M_nxt" identifier -> field_identifier)))) )) (ERROR "{" {) * (cast_expression "(undefined4 *)((int)puVar30 + -0xc) = 1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "((int)puVar30 + -0xc) = 1" (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) = number_literal))) ))) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1;" (assignment_expression "*(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_1" (pointer_expression "*(__node_gen_type **)((int)puVar30 + -0x14)" * (cast_expression "(__node_gen_type **)((int)puVar30 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_1" & identifier)) ;) (expression_statement "*(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1;" (assignment_expression "*(_Hash_node_base **)((int)puVar30 + -0x18) = p_Var9 + 1" (pointer_expression "*(_Hash_node_base **)((int)puVar30 + -0x18)" * (cast_expression "(_Hash_node_base **)((int)puVar30 + -0x18)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x18)" ( (binary_expression "(int)puVar30 + -0x18" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "p_Var9 + 1" identifier + number_literal)) ;) (expression_statement "*(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18);" (assignment_expression "*(__hashtable_alloc **)((int)puVar30 + -0x1c) =\n                       (__hashtable_alloc *)(pcVar24 + 0x18)" (pointer_expression "*(__hashtable_alloc **)((int)puVar30 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)puVar30 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x1c)" ( (binary_expression "(int)puVar30 + -0x1c" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(__hashtable_alloc *)(pcVar24 + 0x18)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x18)" ( (binary_expression "pcVar24 + 0x18" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 **)((int)puVar30 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)((int)puVar30 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)((int)puVar30 + -0x20)" * (cast_expression "(undefined1 **)((int)puVar30 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x20)" ( (binary_expression "(int)puVar30 + -0x20" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x24) = 0x77d7e" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x24)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x24)" ( (binary_expression "(int)puVar30 + -0x24" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);" (assignment_expression "__node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18)" (field_expression "__node_gen_1._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)(pcVar24 + 0x18)" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x18)" ( (binary_expression "pcVar24 + 0x18" identifier + 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<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 (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<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 (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<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 (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_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<const_std::pair<gold::Relobj*,_unsigned_int>&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std::pair<gold::Relobj*" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                  ::\n                  _M_insert<const_std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                  ::\n                  _M_insert<const_std" identifier , (binary_expression "_true>_>\n                  ::\n                  _M_insert<const_std" (binary_expression "_true>_>\n                  ::\n                  _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier *) , (binary_expression "_unsigned_int>&,_std" identifier > (pointer_expression "&,_std" & (ERROR "," ,) 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 "puVar29 = (undefined4 *)((int)puVar30 + -4);" (assignment_expression "puVar29 = (undefined4 *)((int)puVar30 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar30 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -4)" ( (binary_expression "(int)puVar30 + -4" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar30 = (undefined4 *)((int)puVar30 + -4);" (assignment_expression "puVar30 = (undefined4 *)((int)puVar30 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar30 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -4)" ( (binary_expression "(int)puVar30 + -4" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) }) (ERROR "}\n          }\n        }\n      }\n      else {\n        pSVar10 = (Sized_relobj_file<64,_false> *" } } } } else { identifier = ( identifier < number_literal , identifier > *) )) (ERROR "local_c0" 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) )))) ;) (if_statement "if (pSVar4 < pSVar10) {\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }" if (parenthesized_expression "(pSVar4 < pSVar10)" ( (binary_expression "pSVar4 < pSVar10" identifier < identifier) )) (compound_statement "{\n          src_id_1.first = (Relobj *)0x0;\nLAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x11c;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;\n                    /* WARNING: Subroutine does not return */\n          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }" { (expression_statement "src_id_1.first = (Relobj *)0x0;" (assignment_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)) ;) (labeled_statement "LAB_000780d7:\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;" statement_identifier : (expression_statement "*(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4;" (assignment_expression "*(int *)((int)puVar30 + -8) = local_e0 + -0x11e2b4" (pointer_expression "*(int *)((int)puVar30 + -8)" * (cast_expression "(int *)((int)puVar30 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11e2b4" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)((int)puVar30 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)((int)puVar30 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar30 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41;" (assignment_expression "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cf41" (pointer_expression "*(int *)((int)puVar30 + -0x10)" * (cast_expression "(int *)((int)puVar30 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11cf41" identifier + number_literal)) ;) comment (expression_statement "*(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;" (assignment_expression "*(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8" (pointer_expression "*(undefined **)((int)puVar30 + -0x14)" * (cast_expression "(undefined **)((int)puVar30 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_000780f8" & identifier)) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8))" identifier (argument_list "(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8))" ( (pointer_expression "*(char **)((int)puVar30 + -0x10)" * (cast_expression "(char **)((int)puVar30 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar30 + -0xc)" * (cast_expression "(int *)((int)puVar30 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar30 + -8)" * (cast_expression "(char **)((int)puVar30 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "uVar28 = (int)pSVar4 - (int)pSVar10;" (assignment_expression "uVar28 = (int)pSVar4 - (int)pSVar10" identifier = (binary_expression "(int)pSVar4 - (int)pSVar10" (cast_expression "(int)pSVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pSVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage;" (field_expression "ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_end_of_storage" (field_expression "ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl" (binary_expression "ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar20 = local_c0->output_lists_[0xf].\n                   super__Vector_base<gold" identifier = (binary_expression "local_c0->output_lists_[0xf].\n                   super__Vector_base<gold" (field_expression "local_c0->output_lists_[0xf].\n                   super__Vector_base" (subscript_expression "local_c0->output_lists_[0xf]" (field_expression "local_c0->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_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start;" (field_expression "local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl._M_start" (field_expression "local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                   _M_impl" (binary_expression "local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold::Output_data*,_std" (assignment_expression "local_b4 = (Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold" identifier = (binary_expression "(Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base<gold" (cast_expression "(Symbol_table *)\n                   local_c0->output_lists_[0x10].\n                   super__Vector_base" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_c0->output_lists_[0x10].\n                   super__Vector_base" (subscript_expression "local_c0->output_lists_[0x10]" (field_expression "local_c0->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) ;) (if_statement "if ((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }" if (parenthesized_expression "((uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28)" ( (binary_expression "(uint)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28" (call_expression "(uint)((int)local_b4 - (int)ppOVar20 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_b4 - (int)ppOVar20 >> 2)" ( (binary_expression "(int)local_b4 - (int)ppOVar20 >> 2" (binary_expression "(int)local_b4 - (int)ppOVar20" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppOVar20" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;\n          *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x78609;\n          do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));\n        }" { (expression_statement "*(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc;" (assignment_expression "*(int *)((int)puVar30 + -8) = local_e0 + -0x11dcdc" (pointer_expression "*(int *)((int)puVar30 + -8)" * (cast_expression "(int *)((int)puVar30 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11dcdc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)((int)puVar30 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar30 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8;" (assignment_expression "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11d1b8" (pointer_expression "*(int *)((int)puVar30 + -0x10)" * (cast_expression "(int *)((int)puVar30 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11d1b8" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x78609;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x78609" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8))" identifier (argument_list "(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                              *(char **)((int)puVar30 + -8))" ( (pointer_expression "*(char **)((int)puVar30 + -0x10)" * (cast_expression "(char **)((int)puVar30 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar30 + -0xc)" * (cast_expression "(int *)((int)puVar30 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar30 + -8)" * (cast_expression "(char **)((int)puVar30 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "src_id_1.first = (Relobj *)ppOVar20[uVar28];" (assignment_expression "src_id_1.first = (Relobj *)ppOVar20[uVar28]" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)ppOVar20[uVar28]" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppOVar20[uVar28]" identifier [ identifier ]))) ;) (if_statement "if (src_id_1.first == (Relobj *)0x0) goto LAB_000780d7;" 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_000780d7;" goto statement_identifier ;)) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {\n          *(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -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)puVar30 + -0xc) = src_id_1.first;\n          *(int *)((int)puVar30 + -0x10) = local_ec;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;\n          src_id_1.first =\n               (Relobj *)\n               Symbol_table::resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );\n        }" { (expression_statement "*(Relobj **)((int)puVar30 + -0xc) = src_id_1.first;" (assignment_expression "*(Relobj **)((int)puVar30 + -0xc) = src_id_1.first" (pointer_expression "*(Relobj **)((int)puVar30 + -0xc)" * (cast_expression "(Relobj **)((int)puVar30 + -0xc)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "src_id_1.first" identifier . field_identifier)) ;) (expression_statement "*(int *)((int)puVar30 + -0x10) = local_ec;" (assignment_expression "*(int *)((int)puVar30 + -0x10) = local_ec" (pointer_expression "*(int *)((int)puVar30 + -0x10)" * (cast_expression "(int *)((int)puVar30 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x780c5;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x780c5" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "src_id_1.first =\n               (Relobj *)\n               Symbol_table::" (assignment_expression "src_id_1.first =\n               (Relobj *)\n               Symbol_table" (field_expression "src_id_1.first" identifier . field_identifier) = (cast_expression "(Relobj *)\n               Symbol_table" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         );" (call_expression "resolve_forwards\n                         (*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         )" identifier (argument_list "(*(Symbol_table **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)\n                         )" ( (pointer_expression "*(Symbol_table **)((int)puVar30 + -0x10)" * (cast_expression "(Symbol_table **)((int)puVar30 + -0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol **)((int)puVar30 + -0xc)" * (cast_expression "(Symbol **)((int)puVar30 + -0xc)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }\n        else {\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\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_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n          if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }\n        }" { (expression_statement "local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "local_10c = (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_108 = ((src_id_1.first)->super_Object).compressed_sections_;" (assignment_expression "local_108 = ((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_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)\n                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;" (assignment_expression "local_cc = ((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_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;" (assignment_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object" identifier = (binary_expression "(int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object" (cast_expression "(int)&(local_bc->super_Object)._vptr_Object" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_bc->super_Object)._vptr_Object" & (field_expression "(local_bc->super_Object)._vptr_Object" (parenthesized_expression "(local_bc->super_Object)" ( (field_expression "local_bc->super_Object" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(int)&(local_10c->super_Object)._vptr_Object" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_10c->super_Object)._vptr_Object" & (field_expression "(local_10c->super_Object)._vptr_Object" (parenthesized_expression "(local_10c->super_Object)" ( (field_expression "local_10c->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);" (assignment_expression "local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c)" identifier = (binary_expression "local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c)" (binary_expression "local_b8 + (int)local_108" identifier + (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier)) + (call_expression "CARRY4((uint)local_bc,(uint)local_10c)" identifier (argument_list "((uint)local_bc,(uint)local_10c)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_10c" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (if_statement "if (((uint)local_cc->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            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }\n          else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }" if (parenthesized_expression "(((uint)local_cc->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_end_of_storage & 1) == 0)" ( (binary_expression "((uint)local_cc->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_cc->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_end_of_storage & 1)" ( (binary_expression "(uint)local_cc->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_end_of_storage & 1" (field_expression "(uint)local_cc->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_end_of_storage" (field_expression "(uint)local_cc->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl" (binary_expression "(uint)local_cc->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(uint)local_cc->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(uint)local_cc->output_lists_[3].\n                     super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)local_cc->output_lists_[3].\n                     super__Vector_base<gold" (cast_expression "(uint)local_cc->output_lists_[3].\n                     super__Vector_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_cc->output_lists_[3].\n                     super__Vector_base" (subscript_expression "local_cc->output_lists_[3]" (field_expression "local_cc->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) )) == number_literal) )) (compound_statement "{\n            local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;\n            bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;\n            bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;\n            bVar35 = bVar26 < 2;\n            bVar37 = bVar26 == 2;\n            if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }\n          }" { (expression_statement "local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;" (assignment_expression "local_b4 = (Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity" identifier = (cast_expression "(Symbol_table *)\n                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity" ( (type_descriptor "Symbol_table *" 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 "bVar26 = (byte)((src_id_1.first)->super_Object).shnum_ & 0xf;" (assignment_expression "bVar26 = (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 "bVar27 = *(byte *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;" (assignment_expression "bVar27 = *(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 "bVar35 = bVar26 < 2;" (assignment_expression "bVar35 = bVar26 < 2" identifier = (binary_expression "bVar26 < 2" identifier < number_literal)) ;) (expression_statement "bVar37 = bVar26 == 2;" (assignment_expression "bVar37 = bVar26 == 2" identifier = (binary_expression "bVar26 == 2" identifier == number_literal)) ;) (if_statement "if (bVar37) {\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }" if (parenthesized_expression "(bVar37)" ( identifier )) (compound_statement "{\n              bVar35 = false;\n              bVar37 = local_da == false;\n              if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }\n            }" { (expression_statement "bVar35 = false;" (assignment_expression "bVar35 = false" identifier = false) ;) (expression_statement "bVar37 = local_da == false;" (assignment_expression "bVar37 = local_da == false" identifier = (binary_expression "local_da == false" identifier == false)) ;) (if_statement "if (!bVar37) {\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }" if (parenthesized_expression "(!bVar37)" ( (unary_expression "!bVar37" ! identifier) )) (compound_statement "{\n                if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(Section_id **)(local_ec + 0x15c);\n                *(undefined4 *)((int)puVar30 + -0xc) = 1;\n                *(undefined4 *)((int)puVar30 + -0x10) = 0;\n                *(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;\n                *(Output_segment ***)((int)puVar30 + -0x18) = &local_84;\n                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;\n                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;\n                *(undefined1 **)((int)puVar30 + -0x20) = local_f0;\n                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */\n                *(undefined4 *)((int)puVar30 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\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                bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);\n                bVar37 = puVar30 == (undefined4 *)0x4;\n                puVar30 = (undefined4 *)((int)puVar30 + -4);\n              }" { (if_statement "if (bVar27 != 0) {\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }" if (parenthesized_expression "(bVar27 != 0)" ( (binary_expression "bVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                  local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;\n                  uVar28 = (uint)local_c4 & 3;\n                  bVar35 = uVar28 == 0;\n                  bVar37 = uVar28 == 1;\n                  if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;\n                }" { (expression_statement "local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start;" (field_expression "local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl._M_start" (field_expression "local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                             ._M_impl" (binary_expression "local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold::Output_data*,_std" (assignment_expression "local_c4 = (Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold" identifier = (binary_expression "(Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base<gold" (cast_expression "(Section_id *)\n                             local_c0->output_lists_[0x1c].\n                             super__Vector_base" ( (type_descriptor "Section_id *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_c0->output_lists_[0x1c].\n                             super__Vector_base" (subscript_expression "local_c0->output_lists_[0x1c]" (field_expression "local_c0->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 "uVar28 = (uint)local_c4 & 3;" (assignment_expression "uVar28 = (uint)local_c4 & 3" identifier = (binary_expression "(uint)local_c4 & 3" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "bVar35 = uVar28 == 0;" (assignment_expression "bVar35 = uVar28 == 0" identifier = (binary_expression "uVar28 == 0" identifier == number_literal)) ;) (expression_statement "bVar37 = uVar28 == 1;" (assignment_expression "bVar37 = uVar28 == 1" identifier = (binary_expression "uVar28 == 1" identifier == number_literal)) ;) (if_statement "if ((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))\n                  goto LAB_00077ec0;" if (parenthesized_expression "((bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))))" ( (binary_expression "(bVar37) ||\n                     ((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35)))" (parenthesized_expression "(bVar37)" ( identifier )) || (parenthesized_expression "((bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35)))" ( (parenthesized_expression "(bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35))" ( (comma_expression "bVar37 = local_d8 == (__bucket_type *)0x17, local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35)" (assignment_expression "bVar37 = local_d8 == (__bucket_type *)0x17" identifier = (binary_expression "local_d8 == (__bucket_type *)0x17" identifier == (cast_expression "(__bucket_type *)0x17" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) , (binary_expression "local_d8 < (__bucket_type *)0x18\n                      && (bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35)" (binary_expression "local_d8 < (__bucket_type *)0x18" identifier < (cast_expression "(__bucket_type *)0x18" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35)" ( (comma_expression "bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0, bVar35" (assignment_expression "bVar35 = (0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0" identifier = (binary_expression "(0x843f84U >> ((uint)local_d8 & 0x1f) & 1) != 0" (parenthesized_expression "(0x843f84U >> ((uint)local_d8 & 0x1f) & 1)" ( (binary_expression "0x843f84U >> ((uint)local_d8 & 0x1f) & 1" (binary_expression "0x843f84U >> ((uint)local_d8 & 0x1f)" number_literal >> (parenthesized_expression "((uint)local_d8 & 0x1f)" ( (binary_expression "(uint)local_d8 & 0x1f" (cast_expression "(uint)local_d8" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal)) , identifier) )))) )) ))) )) (goto_statement "goto LAB_00077ec0;" goto statement_identifier ;)) })) (expression_statement "local_c4 = *(Section_id **)(local_ec + 0x15c);" (assignment_expression "local_c4 = *(Section_id **)(local_ec + 0x15c)" identifier = (pointer_expression "*(Section_id **)(local_ec + 0x15c)" * (cast_expression "(Section_id **)(local_ec + 0x15c)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)puVar30 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar30 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x10)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3;" (assignment_expression "*(__node_gen_type **)((int)puVar30 + -0x14) = &__node_gen_3" (pointer_expression "*(__node_gen_type **)((int)puVar30 + -0x14)" * (cast_expression "(__node_gen_type **)((int)puVar30 + -0x14)" ( (type_descriptor "__node_gen_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__node_gen_3" & identifier)) ;) (expression_statement "*(Output_segment ***)((int)puVar30 + -0x18) = &local_84;" (assignment_expression "*(Output_segment ***)((int)puVar30 + -0x18) = &local_84" (pointer_expression "*(Output_segment ***)((int)puVar30 + -0x18)" * (cast_expression "(Output_segment ***)((int)puVar30 + -0x18)" ( (type_descriptor "Output_segment ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar30 + -0x18)" ( (binary_expression "(int)puVar30 + -0x18" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_84" & identifier)) ;) (expression_statement "__node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;" (assignment_expression "__node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second" (field_expression "__node_gen_3._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&local_c4[6].second" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_c4[6].second" & (field_expression "local_c4[6].second" (subscript_expression "local_c4[6]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "*(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;" (assignment_expression "*(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h" (pointer_expression "*(__hashtable_alloc **)((int)puVar30 + -0x1c)" * (cast_expression "(__hashtable_alloc **)((int)puVar30 + -0x1c)" ( (type_descriptor "__hashtable_alloc **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x1c)" ( (binary_expression "(int)puVar30 + -0x1c" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "__node_gen_3._M_h" identifier . field_identifier)) ;) (expression_statement "*(undefined1 **)((int)puVar30 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)((int)puVar30 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)((int)puVar30 + -0x20)" * (cast_expression "(undefined1 **)((int)puVar30 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x20)" ( (binary_expression "(int)puVar30 + -0x20" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)puVar30 + -0x24) = 0x78301;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x24) = 0x78301" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x24)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x24)" ( (binary_expression "(int)puVar30 + -0x24" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_84 = local_cc;" (assignment_expression "local_84 = local_cc" identifier = identifier) ;) (expression_statement "local_80 = local_b4;" (assignment_expression "local_80 = local_b4" 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 "bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20);" (assignment_expression "bVar35 = (undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20)" identifier = (binary_expression "(undefined1 *)0xffffffe3 < (undefined1 *)((int)puVar30 + -0x20)" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)puVar30 + -0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x20)" ( (binary_expression "(int)puVar30 + -0x20" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar37 = puVar30 == (undefined4 *)0x4;" (assignment_expression "bVar37 = puVar30 == (undefined4 *)0x4" identifier = (binary_expression "puVar30 == (undefined4 *)0x4" identifier == (cast_expression "(undefined4 *)0x4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "puVar30 = (undefined4 *)((int)puVar30 + -4);" (assignment_expression "puVar30 = (undefined4 *)((int)puVar30 + -4)" identifier = (cast_expression "(undefined4 *)((int)puVar30 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -4)" ( (binary_expression "(int)puVar30 + -4" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) })) }) (else_clause "else {\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }" else (compound_statement "{\n            local_b4 = (Symbol_table *)0x0;\n            bVar35 = false;\n            bVar27 = 0;\n            bVar37 = true;\n            local_cc = (Output_segment *)0x0;\n          }" { (expression_statement "local_b4 = (Symbol_table *)0x0;" (assignment_expression "local_b4 = (Symbol_table *)0x0" identifier = (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar35 = false;" (assignment_expression "bVar35 = false" identifier = false) ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "bVar37 = true;" (assignment_expression "bVar37 = true" identifier = true) ;) (expression_statement "local_cc = (Output_segment *)0x0;" (assignment_expression "local_cc = (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_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }" else (compound_statement "{\n          local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;\n          local_b4 = (Symbol_table *)0x0;\n          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;\n          local_cc = (Output_segment *)0x0;\n          bVar35 = false;\n          bVar27 = 0;\n          bVar37 = true;\n          local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;\n          local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);\n        }" { (expression_statement "local_10c = (Relobj *)((src_id_1.first)->super_Object).xindex_;" (assignment_expression "local_10c = (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_b4 = (Symbol_table *)0x0;" (assignment_expression "local_b4 = (Symbol_table *)0x0" identifier = (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_108 = ((src_id_1.first)->super_Object).compressed_sections_;" (assignment_expression "local_108 = ((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_cc = (Output_segment *)0x0;" (assignment_expression "local_cc = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar35 = false;" (assignment_expression "bVar35 = false" identifier = false) ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "bVar37 = true;" (assignment_expression "bVar37 = true" identifier = true) ;) (expression_statement "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object;" (assignment_expression "local_d4 = (int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object" identifier = (binary_expression "(int)&(local_bc->super_Object)._vptr_Object +\n                     (int)&(local_10c->super_Object)._vptr_Object" (cast_expression "(int)&(local_bc->super_Object)._vptr_Object" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_bc->super_Object)._vptr_Object" & (field_expression "(local_bc->super_Object)._vptr_Object" (parenthesized_expression "(local_bc->super_Object)" ( (field_expression "local_bc->super_Object" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(int)&(local_10c->super_Object)._vptr_Object" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_10c->super_Object)._vptr_Object" & (field_expression "(local_10c->super_Object)._vptr_Object" (parenthesized_expression "(local_10c->super_Object)" ( (field_expression "local_10c->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c);" (assignment_expression "local_d0 = local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c)" identifier = (binary_expression "local_b8 + (int)local_108 + CARRY4((uint)local_bc,(uint)local_10c)" (binary_expression "local_b8 + (int)local_108" identifier + (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier)) + (call_expression "CARRY4((uint)local_bc,(uint)local_10c)" identifier (argument_list "((uint)local_bc,(uint)local_10c)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_10c" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) }))) (labeled_statement "LAB_00077ec0:\n        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;" statement_identifier : (expression_statement "pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;" (assignment_expression "pp_Var19 = ((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 "iVar25 = 8;" (assignment_expression "iVar25 = 8" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11cf31);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11cf31)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf31)" ( (binary_expression "local_e0 + -0x11cf31" identifier + number_literal) )))) ;) (expression_statement "pp_Var32 = pp_Var19;" (assignment_expression "pp_Var32 = pp_Var19" identifier = identifier) ;) (do_statement "do {\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        } while (bVar37);" do (compound_statement "{\n          if (iVar25 == 0) break;\n          iVar25 = iVar25 + -1;\n          bVar35 = *pbVar31 < *(byte *)pp_Var32;\n          bVar37 = *pbVar31 == *(byte *)pp_Var32;\n          pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n          pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n        }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar35 = *pbVar31 < *(byte *)pp_Var32;" (assignment_expression "bVar35 = *pbVar31 < *(byte *)pp_Var32" identifier = (binary_expression "*pbVar31 < *(byte *)pp_Var32" (pointer_expression "*pbVar31" * identifier) < (pointer_expression "*(byte *)pp_Var32" * (cast_expression "(byte *)pp_Var32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar37 = *pbVar31 == *(byte *)pp_Var32;" (assignment_expression "bVar37 = *pbVar31 == *(byte *)pp_Var32" identifier = (binary_expression "*pbVar31 == *(byte *)pp_Var32" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*(byte *)pp_Var32" * (cast_expression "(byte *)pp_Var32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);" (assignment_expression "pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var32 + (uint)bVar38 * -2 + 1)" ( (binary_expression "(int)pp_Var32 + (uint)bVar38 * -2 + 1" (binary_expression "(int)pp_Var32 + (uint)bVar38 * -2" (cast_expression "(int)pp_Var32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar37)" ( identifier )) ;) (expression_statement "bVar36 = false;" (assignment_expression "bVar36 = false" identifier = false) ;) (expression_statement "bVar35 = (!bVar35 && !bVar37) == bVar35;" (assignment_expression "bVar35 = (!bVar35 && !bVar37) == bVar35" identifier = (binary_expression "(!bVar35 && !bVar37) == bVar35" (parenthesized_expression "(!bVar35 && !bVar37)" ( (binary_expression "!bVar35 && !bVar37" (unary_expression "!bVar35" ! identifier) && (unary_expression "!bVar37" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar35) {\n          local_e8 = pp_Var19 + 2;\n        }\n        else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }" if (parenthesized_expression "(bVar35)" ( identifier )) (compound_statement "{\n          local_e8 = pp_Var19 + 2;\n        }" { (expression_statement "local_e8 = pp_Var19 + 2;" (assignment_expression "local_e8 = pp_Var19 + 2" identifier = (binary_expression "pp_Var19 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }" else (compound_statement "{\n          iVar25 = 7;\n          pbVar31 = (byte *)(local_e0 + -0x11cf28);\n          pp_Var32 = pp_Var19;\n          do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);\n          pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);\n          if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }\n          local_e8 = pp_Var19;\n        }" { (expression_statement "iVar25 = 7;" (assignment_expression "iVar25 = 7" identifier = number_literal) ;) (expression_statement "pbVar31 = (byte *)(local_e0 + -0x11cf28);" (assignment_expression "pbVar31 = (byte *)(local_e0 + -0x11cf28)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf28)" ( (binary_expression "local_e0 + -0x11cf28" identifier + number_literal) )))) ;) (expression_statement "pp_Var32 = pp_Var19;" (assignment_expression "pp_Var32 = pp_Var19" identifier = identifier) ;) (do_statement "do {\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          } while (bVar35);" do (compound_statement "{\n            if (iVar25 == 0) break;\n            iVar25 = iVar25 + -1;\n            bVar36 = *pbVar31 < *(byte *)pp_Var32;\n            bVar35 = *pbVar31 == *(byte *)pp_Var32;\n            pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;\n            pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);\n          }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar36 = *pbVar31 < *(byte *)pp_Var32;" (assignment_expression "bVar36 = *pbVar31 < *(byte *)pp_Var32" identifier = (binary_expression "*pbVar31 < *(byte *)pp_Var32" (pointer_expression "*pbVar31" * identifier) < (pointer_expression "*(byte *)pp_Var32" * (cast_expression "(byte *)pp_Var32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar35 = *pbVar31 == *(byte *)pp_Var32;" (assignment_expression "bVar35 = *pbVar31 == *(byte *)pp_Var32" identifier = (binary_expression "*pbVar31 == *(byte *)pp_Var32" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*(byte *)pp_Var32" * (cast_expression "(byte *)pp_Var32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar38 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar38 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar38 * -2" identifier + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1);" (assignment_expression "pp_Var32 = (_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var32 + (uint)bVar38 * -2 + 1)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var32 + (uint)bVar38 * -2 + 1)" ( (binary_expression "(int)pp_Var32 + (uint)bVar38 * -2 + 1" (binary_expression "(int)pp_Var32 + (uint)bVar38 * -2" (cast_expression "(int)pp_Var32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar38 * -2" (cast_expression "(uint)bVar38" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar35)" ( identifier )) ;) (expression_statement "pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7);" (assignment_expression "pp_Var19 = (_func_int_varargs **)((int)pp_Var19 + 7)" identifier = (cast_expression "(_func_int_varargs **)((int)pp_Var19 + 7)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var19 + 7)" ( (binary_expression "(int)pp_Var19 + 7" (cast_expression "(int)pp_Var19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((!bVar36 && !bVar35) != bVar36) {\n            pp_Var19 = local_e8;\n          }" if (parenthesized_expression "((!bVar36 && !bVar35) != bVar36)" ( (binary_expression "(!bVar36 && !bVar35) != bVar36" (parenthesized_expression "(!bVar36 && !bVar35)" ( (binary_expression "!bVar36 && !bVar35" (unary_expression "!bVar36" ! identifier) && (unary_expression "!bVar35" ! identifier)) )) != identifier) )) (compound_statement "{\n            pp_Var19 = local_e8;\n          }" { (expression_statement "pp_Var19 = local_e8;" (assignment_expression "pp_Var19 = local_e8" identifier = identifier) ;) })) (expression_statement "local_e8 = pp_Var19;" (assignment_expression "local_e8 = pp_Var19" identifier = identifier) ;) }))) (if_statement "if (local_d9 != '\0') {\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }" if (parenthesized_expression "(local_d9 != '\0')" ( (binary_expression "local_d9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = &src_id;\n          *(mapped_type **)((int)puVar30 + -0x10) = local_fc;\n          local_c4 = &src_id;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;\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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));\n          ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;\n          if (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }\n          *(Section_id **)((int)puVar30 + -0xc) = local_c4;\n          *(Addend_info **)((int)puVar30 + -0x10) = local_100;\n          src_id.first = local_10c;\n          src_id.second = (uint)local_108;\n          local_2c = local_bc;\n          local_28._M_p = local_b8;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;\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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));\n          if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }\n          src_id.first = (Relobj *)param_2->number_of_input_files_;\n          src_id.second = 0;\n          puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;\n          if (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }\n          dst_id.first = (Relobj *)0x0;\n          *(Section_id **)((int)puVar30 + -0xc) = &dst_id;\n          *(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;\n          *(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;\n          std::vector<unsigned_int,_std::allocator<unsigned_int>_>::emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));\n        }" { (if_statement "if (bVar27 == 0) {\n            src_id.first = (Relobj *)0x0;\n            src_id.second = 0;\n          }\n          else {\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }" if (parenthesized_expression "(bVar27 == 0)" ( (binary_expression "bVar27 == 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_cc;\n            src_id.second = (uint)local_b4;\n          }" else (compound_statement "{\n            src_id.first = (Relobj *)local_cc;\n            src_id.second = (uint)local_b4;\n          }" { (expression_statement "src_id.first = (Relobj *)local_cc;" (assignment_expression "src_id.first = (Relobj *)local_cc" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)local_cc" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "src_id.second = (uint)local_b4;" (assignment_expression "src_id.second = (uint)local_b4" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "*(Section_id **)((int)puVar30 + -0xc) = &src_id;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = &src_id" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&src_id" & identifier)) ;) (expression_statement "*(mapped_type **)((int)puVar30 + -0x10) = local_fc;" (assignment_expression "*(mapped_type **)((int)puVar30 + -0x10) = local_fc" (pointer_expression "*(mapped_type **)((int)puVar30 + -0x10)" * (cast_expression "(mapped_type **)((int)puVar30 + -0x10)" ( (type_descriptor "mapped_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = &src_id;" (assignment_expression "local_c4 = &src_id" identifier = (pointer_expression "&src_id" & identifier)) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x77f29;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x77f29" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc));" (binary_expression "Relobj*,_unsigned_int>_>\n                    (*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar30 + -0x10),\n                     *(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc)" (pointer_expression "*(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar30 + -0x10)" * (call_expression "(vector<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n                       **)((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -0xc)" * (call_expression "(pair<gold::Relobj*,_unsigned_int> **)((int)puVar30 + -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)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;) (expression_statement "ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish;" (assignment_expression "ppSVar11 = (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish" identifier = (field_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl._M_finish" (field_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                     _M_impl" (parenthesized_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "local_f8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_f8->super__Vector_base<gold::Symbol*" (binary_expression "local_f8->super__Vector_base<gold" (field_expression "local_f8->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 (ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }\n          else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }" if (parenthesized_expression "(ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage)" ( (binary_expression "ppSVar11 ==\n              (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" identifier == (field_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n              _M_end_of_storage" (field_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_f8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_f8->super__Vector_base<gold" (field_expression "local_f8->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)puVar30 + -8) = &src_id_1;\n            *(pointer *)((int)puVar30 + -0xc) = ppSVar11;\n            *(Symbol_info **)((int)puVar30 + -0x10) = local_f8;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;\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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));\n          }" { (expression_statement "*(Section_id **)((int)puVar30 + -8) = &src_id_1;" (assignment_expression "*(Section_id **)((int)puVar30 + -8) = &src_id_1" (pointer_expression "*(Section_id **)((int)puVar30 + -8)" * (cast_expression "(Section_id **)((int)puVar30 + -8)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&src_id_1" & identifier)) ;) (expression_statement "*(pointer *)((int)puVar30 + -0xc) = ppSVar11;" (assignment_expression "*(pointer *)((int)puVar30 + -0xc) = ppSVar11" (pointer_expression "*(pointer *)((int)puVar30 + -0xc)" * (cast_expression "(pointer *)((int)puVar30 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Symbol_info **)((int)puVar30 + -0x10) = local_f8;" (assignment_expression "*(Symbol_info **)((int)puVar30 + -0x10) = local_f8" (pointer_expression "*(Symbol_info **)((int)puVar30 + -0x10)" * (cast_expression "(Symbol_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Symbol_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x781fb;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x781fb" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8));" (binary_expression "Symbol*_const&>\n                      (*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8))" (binary_expression "Symbol*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8))" ( (comma_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8)" (pointer_expression "*(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -0x10)" * (call_expression "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> **)\n                        ((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(Symbol ***)((int)puVar30 + -0xc),\n                       *(Symbol ***)((int)puVar30 + -8)" (binary_expression "(iterator)*(Symbol ***)((int)puVar30 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(Symbol ***)((int)puVar30 + -0xc)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Symbol ***)((int)puVar30 + -8)" * (cast_expression "(Symbol ***)((int)puVar30 + -8)" ( (type_descriptor "Symbol ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;) }) (else_clause "else {\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }" else (compound_statement "{\n            *ppSVar11 = (Symbol *)src_id_1.first;\n            (local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;\n          }" { (expression_statement "*ppSVar11 = (Symbol *)src_id_1.first;" (assignment_expression "*ppSVar11 = (Symbol *)src_id_1.first" (pointer_expression "*ppSVar11" * 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_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1;" (assignment_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish = ppSVar11 + 1" (field_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n            _M_finish" (field_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "local_f8->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "local_f8->super__Vector_base<gold::Symbol*,_std" (binary_expression "local_f8->super__Vector_base<gold" (field_expression "local_f8->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 "ppSVar11 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(Section_id **)((int)puVar30 + -0xc) = local_c4;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = local_c4" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Addend_info **)((int)puVar30 + -0x10) = local_100;" (assignment_expression "*(Addend_info **)((int)puVar30 + -0x10) = local_100" (pointer_expression "*(Addend_info **)((int)puVar30 + -0x10)" * (cast_expression "(Addend_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Addend_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "src_id.first = local_10c;" (assignment_expression "src_id.first = local_10c" (field_expression "src_id.first" identifier . field_identifier) = identifier) ;) (expression_statement "src_id.second = (uint)local_108;" (assignment_expression "src_id.second = (uint)local_108" (field_expression "src_id.second" identifier . field_identifier) = (cast_expression "(uint)local_108" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_2c = local_bc;" (assignment_expression "local_2c = local_bc" identifier = identifier) ;) (expression_statement "local_28._M_p = local_b8;" (assignment_expression "local_28._M_p = local_b8" (field_expression "local_28._M_p" identifier . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x77f82;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x77f82" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar30 + -0x10),\n                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc)" (pointer_expression "*(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar30 + -0x10)" * (call_expression "(vector<std::pair<long_long_int,_long_long_int>,_std::allocator<std::pair<long_long_int,_long_long_int>_>_>\n                       **)((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc)" * (call_expression "(pair<long_long_int,_long_long_int> **)((int)puVar30 + -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)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;)) (if_statement "if (param_2->script_options_ != (Script_options *)0x0) {\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }" if (parenthesized_expression "(param_2->script_options_ != (Script_options *)0x0)" ( (binary_expression "param_2->script_options_ != (Script_options *)0x0" (field_expression "param_2->script_options_" identifier -> field_identifier) != (cast_expression "(Script_options *)0x0" ( (type_descriptor "Script_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)((int)puVar30 + -0xc) = 0xc0;\n            *(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;\n                    /* WARNING: Subroutine does not return */\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;\n            do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));\n          }" { (expression_statement "*(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c;" (assignment_expression "*(int *)((int)puVar30 + -8) = local_e0 + -0x11de3c" (pointer_expression "*(int *)((int)puVar30 + -8)" * (cast_expression "(int *)((int)puVar30 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11de3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)puVar30 + -0xc)" * (cast_expression "(undefined4 *)((int)puVar30 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44;" (assignment_expression "*(int *)((int)puVar30 + -0x10) = local_e0 + -0x11cc44" (pointer_expression "*(int *)((int)puVar30 + -0x10)" * (cast_expression "(int *)((int)puVar30 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_e0 + -0x11cc44" identifier + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x785e8;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x785e8" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8))" identifier (argument_list "(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),\n                                *(char **)((int)puVar30 + -8))" ( (pointer_expression "*(char **)((int)puVar30 + -0x10)" * (cast_expression "(char **)((int)puVar30 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)puVar30 + -0xc)" * (cast_expression "(int *)((int)puVar30 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)puVar30 + -8)" * (cast_expression "(char **)((int)puVar30 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "src_id.first = (Relobj *)param_2->number_of_input_files_;" (assignment_expression "src_id.first = (Relobj *)param_2->number_of_input_files_" (field_expression "src_id.first" identifier . field_identifier) = (cast_expression "(Relobj *)param_2->number_of_input_files_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "param_2->number_of_input_files_" identifier -> field_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 "puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish;" (assignment_expression "puVar3 = (local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" identifier = (field_expression "(local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl._M_finish" (field_expression "(local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )._M_impl" (parenthesized_expression "(local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                   )" ( (ERROR "local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_f4->\n                   super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_f4->\n                   super__Vector_base<long_long_unsigned_int" (field_expression "local_f4->\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 (puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage) {\n            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }\n          else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }" if (parenthesized_expression "(puVar3 == (local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage)" ( (binary_expression "puVar3 == (local_f4->\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_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl._M_end_of_storage" (field_expression "(local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )._M_impl" (parenthesized_expression "(local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                        )" ( (ERROR "local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_f4->\n                        super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_f4->\n                        super__Vector_base<long_long_unsigned_int" (field_expression "local_f4->\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            *(Section_id **)((int)puVar30 + -8) = local_c4;\n            *(pointer *)((int)puVar30 + -0xc) = puVar3;\n            *(Offset_info **)((int)puVar30 + -0x10) = local_f4;\n            *(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;\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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8));\n          }" { (expression_statement "*(Section_id **)((int)puVar30 + -8) = local_c4;" (assignment_expression "*(Section_id **)((int)puVar30 + -8) = local_c4" (pointer_expression "*(Section_id **)((int)puVar30 + -8)" * (cast_expression "(Section_id **)((int)puVar30 + -8)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)puVar30 + -0xc) = puVar3;" (assignment_expression "*(pointer *)((int)puVar30 + -0xc) = puVar3" (pointer_expression "*(pointer *)((int)puVar30 + -0xc)" * (cast_expression "(pointer *)((int)puVar30 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Offset_info **)((int)puVar30 + -0x10) = local_f4;" (assignment_expression "*(Offset_info **)((int)puVar30 + -0x10) = local_f4" (pointer_expression "*(Offset_info **)((int)puVar30 + -0x10)" * (cast_expression "(Offset_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Offset_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x781dd;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x781dd" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -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)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8))" ( (comma_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar30 + -0x10),(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8)" (pointer_expression "*(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar30 + -0x10)" * (call_expression "(vector<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_> **)\n                        ((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "(iterator)*(ulonglong **)((int)puVar30 + -0xc),\n                       *(ulonglong **)((int)puVar30 + -8)" (binary_expression "(iterator)*(ulonglong **)((int)puVar30 + -0xc)" (parenthesized_expression "(iterator)" ( identifier )) * (cast_expression "(ulonglong **)((int)puVar30 + -0xc)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(ulonglong **)((int)puVar30 + -8)" * (cast_expression "(ulonglong **)((int)puVar30 + -8)" ( (type_descriptor "ulonglong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -8)" ( (binary_expression "(int)puVar30 + -8" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ))) ;)) }) (else_clause "else {\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }" else (compound_statement "{\n            *(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;\n            *(undefined4 *)((int)puVar3 + 4) = 0;\n            (local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;\n          }" { (expression_statement "*(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_;" (assignment_expression "*(Relobj **)puVar3 = (Relobj *)param_2->number_of_input_files_" (pointer_expression "*(Relobj **)puVar3" * (cast_expression "(Relobj **)puVar3" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (cast_expression "(Relobj *)param_2->number_of_input_files_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "param_2->number_of_input_files_" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)puVar3 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)puVar3 + 4) = 0" (pointer_expression "*(undefined4 *)((int)puVar3 + 4)" * (cast_expression "(undefined4 *)((int)puVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 4)" ( (binary_expression "(int)puVar3 + 4" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1;" (assignment_expression "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish = puVar3 + 1" (field_expression "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl._M_finish" (field_expression "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>).\n            _M_impl" (parenthesized_expression "(local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>)" ( (ERROR "local_f4->\n            super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "local_f4->\n            super__Vector_base<long_long_unsigned_int,_std" (binary_expression "local_f4->\n            super__Vector_base<long_long_unsigned_int" (field_expression "local_f4->\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 "puVar3 + 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)puVar30 + -0xc) = &dst_id;" (assignment_expression "*(Section_id **)((int)puVar30 + -0xc) = &dst_id" (pointer_expression "*(Section_id **)((int)puVar30 + -0xc)" * (cast_expression "(Section_id **)((int)puVar30 + -0xc)" ( (type_descriptor "Section_id **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&dst_id" & identifier)) ;) (expression_statement "*(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104;" (assignment_expression "*(Reloc_addend_size_info **)((int)puVar30 + -0x10) = local_104" (pointer_expression "*(Reloc_addend_size_info **)((int)puVar30 + -0x10)" * (cast_expression "(Reloc_addend_size_info **)((int)puVar30 + -0x10)" ( (type_descriptor "Reloc_addend_size_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9;" (assignment_expression "*(undefined4 *)((int)puVar30 + -0x14) = 0x77fd9" (pointer_expression "*(undefined4 *)((int)puVar30 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar30 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + -0x14)" ( (binary_expression "(int)puVar30 + -0x14" (cast_expression "(int)puVar30" ( (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)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -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)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc));" (binary_expression "emplace_back<unsigned_int>\n                    (*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc))" (binary_expression "emplace_back<unsigned_int" identifier < identifier) > (parenthesized_expression "(*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc))" ( (comma_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)\n                     ,*(uint **)((int)puVar30 + -0xc)" (pointer_expression "*(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -0x10)" * (call_expression "(vector<unsigned_int,_std::allocator<unsigned_int>_> **)((int)puVar30 + -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)puVar30 + -0x10)" ( (binary_expression "(int)puVar30 + -0x10" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint **)((int)puVar30 + -0xc)" * (cast_expression "(uint **)((int)puVar30 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar30 + -0xc)" ( (binary_expression "(int)puVar30 + -0xc" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) })) (expression_statement "puVar29 = puVar30;" (assignment_expression "puVar29 = puVar30" identifier = identifier) ;) (if_statement "if (bVar27 != 0) goto LAB_00077afb;" if (parenthesized_expression "(bVar27 != 0)" ( (binary_expression "bVar27 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00077afb;" goto statement_identifier ;)) })) (labeled_statement "LAB_00077980:\n      local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);" statement_identifier : (expression_statement "local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1);" (assignment_expression "local_b0 = (Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1)" identifier = (call_expression "(Target_powerpc<64,_false> *)((int)&local_b0->invalid_address + 1)" (parenthesized_expression "(Target_powerpc<64,_false> *)" ( (comma_expression "Target_powerpc<64,_false> *" (binary_expression "Target_powerpc<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "((int)&local_b0->invalid_address + 1)" ( (binary_expression "(int)&local_b0->invalid_address + 1" (cast_expression "(int)&local_b0->invalid_address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_b0->invalid_address" & (field_expression "local_b0->invalid_address" identifier -> field_identifier))) + number_literal) )))) ;)) (expression_statement "param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;" (assignment_expression "param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy" identifier = (cast_expression "(Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(param_2->namepool_).string_set_._M_h._M_rehash_policy" & (field_expression "(param_2->namepool_).string_set_._M_h._M_rehash_policy" (field_expression "(param_2->namepool_).string_set_._M_h" (field_expression "(param_2->namepool_).string_set_" (parenthesized_expression "(param_2->namepool_)" ( (field_expression "param_2->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)))) ;) (expression_statement "puVar30 = puVar29;" (assignment_expression "puVar30 = puVar29" identifier = identifier) ;) })) (while_statement "while (target != local_b0);" while (parenthesized_expression "(target != local_b0)" ( (binary_expression "target != local_b0" identifier != identifier) )) (expression_statement ";" ;)) })) (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_114) {\n    *(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78222;\n    operator_delete(*(void **)((int)puVar29 + -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_114)" ( (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_114)" ( (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_114" (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)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;\n    *(undefined4 *)((int)puVar29 + -0x14) = 0x78222;\n    operator_delete(*(void **)((int)puVar29 + -0x10));\n  }" { (expression_statement "*(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)puVar29 + -0x10) = src_section_name._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)puVar29 + -0x10)" * (cast_expression "(pointer *)((int)puVar29 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (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)puVar29 + -0x14) = 0x78222;" (assignment_expression "*(undefined4 *)((int)puVar29 + -0x14) = 0x78222" (pointer_expression "*(undefined4 *)((int)puVar29 + -0x14)" * (cast_expression "(undefined4 *)((int)puVar29 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x14)" ( (binary_expression "(int)puVar29 + -0x14" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)puVar29 + -0x10));" (call_expression "operator_delete(*(void **)((int)puVar29 + -0x10))" identifier (argument_list "(*(void **)((int)puVar29 + -0x10))" ( (pointer_expression "*(void **)((int)puVar29 + -0x10)" * (cast_expression "(void **)((int)puVar29 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar29 + -0x10)" ( (binary_expression "(int)puVar29 + -0x10" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (return_statement "return;" return ;) }))))
(translation_unit "void FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)\n\n{\n  byte *****pppppbVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  int *piVar4;\n  int iVar5;\n  code *pcVar6;\n  byte ***pppbVar7;\n  byte *****pppppbVar8;\n  char cVar9;\n  size_t sVar10;\n  byte ****ppppbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte *****extraout_ECX;\n  undefined4 extraout_ECX_00;\n  byte *****pppppbVar14;\n  byte *****pppppbVar15;\n  int iVar16;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  int unaff_EDI;\n  byte ****ppppbVar22;\n  byte *****pppppbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  undefined1 auStack_11c [8];\n  byte *local_114;\n  byte ****local_110;\n  byte ***local_10c;\n  byte ***local_108;\n  int local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  int local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  byte ***local_e8;\n  byte *local_e4;\n  int local_e0;\n  char local_da;\n  char local_d9;\n  uint local_d8;\n  byte *local_d4;\n  int local_d0;\n  byte ****local_cc;\n  int local_c8;\n  byte ****local_c4;\n  byte ****local_c0;\n  byte ****local_bc;\n  int local_b8;\n  byte ***local_b4;\n  int *local_b0;\n  byte ****local_ac;\n  byte ****local_a8;\n  undefined1 local_a4 [8];\n  byte ****local_9c;\n  byte ****local_98;\n  byte ****local_94;\n  byte ****local_90;\n  byte ****local_8c;\n  byte ****local_88;\n  byte ****local_84;\n  byte ***local_80;\n  byte ****local_7c;\n  uint local_78;\n  byte ****local_74;\n  byte ***local_70;\n  byte ****local_6c;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  byte ****local_34;\n  byte ***local_30;\n  byte ****local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  uVar28 = FUN_000b484e();\n  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);\n  local_ec = (int)uVar28;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = (byte ****)extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }\n  pbVar21 = local_4c[0];\n  iVar16 = *(int *)local_e4;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  piVar4 = local_b0;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }\n  local_da = '\0';\nLAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }\n  if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }\n  if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }\n  return;\n}\n\n" (function_definition "void FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)\n\n{\n  byte *****pppppbVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  int *piVar4;\n  int iVar5;\n  code *pcVar6;\n  byte ***pppbVar7;\n  byte *****pppppbVar8;\n  char cVar9;\n  size_t sVar10;\n  byte ****ppppbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte *****extraout_ECX;\n  undefined4 extraout_ECX_00;\n  byte *****pppppbVar14;\n  byte *****pppppbVar15;\n  int iVar16;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  int unaff_EDI;\n  byte ****ppppbVar22;\n  byte *****pppppbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  undefined1 auStack_11c [8];\n  byte *local_114;\n  byte ****local_110;\n  byte ***local_10c;\n  byte ***local_108;\n  int local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  int local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  byte ***local_e8;\n  byte *local_e4;\n  int local_e0;\n  char local_da;\n  char local_d9;\n  uint local_d8;\n  byte *local_d4;\n  int local_d0;\n  byte ****local_cc;\n  int local_c8;\n  byte ****local_c4;\n  byte ****local_c0;\n  byte ****local_bc;\n  int local_b8;\n  byte ***local_b4;\n  int *local_b0;\n  byte ****local_ac;\n  byte ****local_a8;\n  undefined1 local_a4 [8];\n  byte ****local_9c;\n  byte ****local_98;\n  byte ****local_94;\n  byte ****local_90;\n  byte ****local_8c;\n  byte ****local_88;\n  byte ****local_84;\n  byte ***local_80;\n  byte ****local_7c;\n  uint local_78;\n  byte ****local_74;\n  byte ***local_70;\n  byte ****local_6c;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  byte ****local_34;\n  byte ***local_30;\n  byte ****local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  uVar28 = FUN_000b484e();\n  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);\n  local_ec = (int)uVar28;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = (byte ****)extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }\n  pbVar21 = local_4c[0];\n  iVar16 = *(int *)local_e4;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  piVar4 = local_b0;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }\n  local_da = '\0';\nLAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }\n  if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }\n  if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)" identifier (parameter_list "(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)" ( (parameter_declaration "byte ****param_1" type_identifier (pointer_declarator "****param_1" * (pointer_declarator "***param_1" * (pointer_declarator "**param_1" * (pointer_declarator "*param_1" * identifier))))) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte ****param_4" type_identifier (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier))))) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  byte *****pppppbVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  int *piVar4;\n  int iVar5;\n  code *pcVar6;\n  byte ***pppbVar7;\n  byte *****pppppbVar8;\n  char cVar9;\n  size_t sVar10;\n  byte ****ppppbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte *****extraout_ECX;\n  undefined4 extraout_ECX_00;\n  byte *****pppppbVar14;\n  byte *****pppppbVar15;\n  int iVar16;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  int unaff_EDI;\n  byte ****ppppbVar22;\n  byte *****pppppbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  undefined1 auStack_11c [8];\n  byte *local_114;\n  byte ****local_110;\n  byte ***local_10c;\n  byte ***local_108;\n  int local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  int local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  byte ***local_e8;\n  byte *local_e4;\n  int local_e0;\n  char local_da;\n  char local_d9;\n  uint local_d8;\n  byte *local_d4;\n  int local_d0;\n  byte ****local_cc;\n  int local_c8;\n  byte ****local_c4;\n  byte ****local_c0;\n  byte ****local_bc;\n  int local_b8;\n  byte ***local_b4;\n  int *local_b0;\n  byte ****local_ac;\n  byte ****local_a8;\n  undefined1 local_a4 [8];\n  byte ****local_9c;\n  byte ****local_98;\n  byte ****local_94;\n  byte ****local_90;\n  byte ****local_8c;\n  byte ****local_88;\n  byte ****local_84;\n  byte ***local_80;\n  byte ****local_7c;\n  uint local_78;\n  byte ****local_74;\n  byte ***local_70;\n  byte ****local_6c;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  byte ****local_34;\n  byte ***local_30;\n  byte ****local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  uVar28 = FUN_000b484e();\n  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);\n  local_ec = (int)uVar28;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = (byte ****)extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }\n  pbVar21 = local_4c[0];\n  iVar16 = *(int *)local_e4;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  piVar4 = local_b0;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }\n  local_da = '\0';\nLAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }\n  if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }\n  if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }\n  return;\n}" { (declaration "byte *****pppppbVar1;" type_identifier (pointer_declarator "*****pppppbVar1" * (pointer_declarator "****pppppbVar1" * (pointer_declarator "***pppppbVar1" * (pointer_declarator "**pppppbVar1" * (pointer_declarator "*pppppbVar1" * identifier))))) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte ****ppppbVar3;" type_identifier (pointer_declarator "****ppppbVar3" * (pointer_declarator "***ppppbVar3" * (pointer_declarator "**ppppbVar3" * (pointer_declarator "*ppppbVar3" * identifier)))) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte ***pppbVar7;" type_identifier (pointer_declarator "***pppbVar7" * (pointer_declarator "**pppbVar7" * (pointer_declarator "*pppbVar7" * identifier))) ;) (declaration "byte *****pppppbVar8;" type_identifier (pointer_declarator "*****pppppbVar8" * (pointer_declarator "****pppppbVar8" * (pointer_declarator "***pppppbVar8" * (pointer_declarator "**pppppbVar8" * (pointer_declarator "*pppppbVar8" * identifier))))) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "byte ****ppppbVar11;" type_identifier (pointer_declarator "****ppppbVar11" * (pointer_declarator "***ppppbVar11" * (pointer_declarator "**ppppbVar11" * (pointer_declarator "*ppppbVar11" * identifier)))) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *****extraout_ECX;" type_identifier (pointer_declarator "*****extraout_ECX" * (pointer_declarator "****extraout_ECX" * (pointer_declarator "***extraout_ECX" * (pointer_declarator "**extraout_ECX" * (pointer_declarator "*extraout_ECX" * identifier))))) ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "byte *****pppppbVar14;" type_identifier (pointer_declarator "*****pppppbVar14" * (pointer_declarator "****pppppbVar14" * (pointer_declarator "***pppppbVar14" * (pointer_declarator "**pppppbVar14" * (pointer_declarator "*pppppbVar14" * identifier))))) ;) (declaration "byte *****pppppbVar15;" type_identifier (pointer_declarator "*****pppppbVar15" * (pointer_declarator "****pppppbVar15" * (pointer_declarator "***pppppbVar15" * (pointer_declarator "**pppppbVar15" * (pointer_declarator "*pppppbVar15" * identifier))))) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_02;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "byte ****ppppbVar22;" type_identifier (pointer_declarator "****ppppbVar22" * (pointer_declarator "***ppppbVar22" * (pointer_declarator "**ppppbVar22" * (pointer_declarator "*ppppbVar22" * identifier)))) ;) (declaration "byte *****pppppbVar23;" type_identifier (pointer_declarator "*****pppppbVar23" * (pointer_declarator "****pppppbVar23" * (pointer_declarator "***pppppbVar23" * (pointer_declarator "**pppppbVar23" * (pointer_declarator "*pppppbVar23" * identifier))))) ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "undefined8 uVar28;" type_identifier identifier ;) (declaration "undefined1 auStack_11c [8];" type_identifier (array_declarator "auStack_11c [8]" identifier [ number_literal ]) ;) (declaration "byte *local_114;" type_identifier (pointer_declarator "*local_114" * identifier) ;) (declaration "byte ****local_110;" type_identifier (pointer_declarator "****local_110" * (pointer_declarator "***local_110" * (pointer_declarator "**local_110" * (pointer_declarator "*local_110" * identifier)))) ;) (declaration "byte ***local_10c;" type_identifier (pointer_declarator "***local_10c" * (pointer_declarator "**local_10c" * (pointer_declarator "*local_10c" * identifier))) ;) (declaration "byte ***local_108;" type_identifier (pointer_declarator "***local_108" * (pointer_declarator "**local_108" * (pointer_declarator "*local_108" * identifier))) ;) (declaration "int local_104;" primitive_type identifier ;) (declaration "int local_100;" primitive_type identifier ;) (declaration "int local_fc;" primitive_type identifier ;) (declaration "int local_f8;" primitive_type identifier ;) (declaration "int local_f4;" primitive_type identifier ;) (declaration "undefined1 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "int local_ec;" primitive_type identifier ;) (declaration "byte ***local_e8;" type_identifier (pointer_declarator "***local_e8" * (pointer_declarator "**local_e8" * (pointer_declarator "*local_e8" * identifier))) ;) (declaration "byte *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "int local_e0;" primitive_type identifier ;) (declaration "char local_da;" primitive_type identifier ;) (declaration "char local_d9;" primitive_type identifier ;) (declaration "uint local_d8;" type_identifier identifier ;) (declaration "byte *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "byte ****local_cc;" type_identifier (pointer_declarator "****local_cc" * (pointer_declarator "***local_cc" * (pointer_declarator "**local_cc" * (pointer_declarator "*local_cc" * identifier)))) ;) (declaration "int local_c8;" primitive_type identifier ;) (declaration "byte ****local_c4;" type_identifier (pointer_declarator "****local_c4" * (pointer_declarator "***local_c4" * (pointer_declarator "**local_c4" * (pointer_declarator "*local_c4" * identifier)))) ;) (declaration "byte ****local_c0;" type_identifier (pointer_declarator "****local_c0" * (pointer_declarator "***local_c0" * (pointer_declarator "**local_c0" * (pointer_declarator "*local_c0" * identifier)))) ;) (declaration "byte ****local_bc;" type_identifier (pointer_declarator "****local_bc" * (pointer_declarator "***local_bc" * (pointer_declarator "**local_bc" * (pointer_declarator "*local_bc" * identifier)))) ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "byte ***local_b4;" type_identifier (pointer_declarator "***local_b4" * (pointer_declarator "**local_b4" * (pointer_declarator "*local_b4" * identifier))) ;) (declaration "int *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "byte ****local_ac;" type_identifier (pointer_declarator "****local_ac" * (pointer_declarator "***local_ac" * (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier)))) ;) (declaration "byte ****local_a8;" type_identifier (pointer_declarator "****local_a8" * (pointer_declarator "***local_a8" * (pointer_declarator "**local_a8" * (pointer_declarator "*local_a8" * identifier)))) ;) (declaration "undefined1 local_a4 [8];" type_identifier (array_declarator "local_a4 [8]" identifier [ number_literal ]) ;) (declaration "byte ****local_9c;" type_identifier (pointer_declarator "****local_9c" * (pointer_declarator "***local_9c" * (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)))) ;) (declaration "byte ****local_98;" type_identifier (pointer_declarator "****local_98" * (pointer_declarator "***local_98" * (pointer_declarator "**local_98" * (pointer_declarator "*local_98" * identifier)))) ;) (declaration "byte ****local_94;" type_identifier (pointer_declarator "****local_94" * (pointer_declarator "***local_94" * (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)))) ;) (declaration "byte ****local_90;" type_identifier (pointer_declarator "****local_90" * (pointer_declarator "***local_90" * (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)))) ;) (declaration "byte ****local_8c;" type_identifier (pointer_declarator "****local_8c" * (pointer_declarator "***local_8c" * (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)))) ;) (declaration "byte ****local_88;" type_identifier (pointer_declarator "****local_88" * (pointer_declarator "***local_88" * (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier)))) ;) (declaration "byte ****local_84;" type_identifier (pointer_declarator "****local_84" * (pointer_declarator "***local_84" * (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)))) ;) (declaration "byte ***local_80;" type_identifier (pointer_declarator "***local_80" * (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier))) ;) (declaration "byte ****local_7c;" type_identifier (pointer_declarator "****local_7c" * (pointer_declarator "***local_7c" * (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier)))) ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "byte ****local_74;" type_identifier (pointer_declarator "****local_74" * (pointer_declarator "***local_74" * (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)))) ;) (declaration "byte ***local_70;" type_identifier (pointer_declarator "***local_70" * (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier))) ;) (declaration "byte ****local_6c;" type_identifier (pointer_declarator "****local_6c" * (pointer_declarator "***local_6c" * (pointer_declarator "**local_6c" * (pointer_declarator "*local_6c" * identifier)))) ;) (declaration "byte ***local_68;" type_identifier (pointer_declarator "***local_68" * (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier))) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined1 local_50;" type_identifier 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 "byte ****local_34;" type_identifier (pointer_declarator "****local_34" * (pointer_declarator "***local_34" * (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)))) ;) (declaration "byte ***local_30;" type_identifier (pointer_declarator "***local_30" * (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier))) ;) (declaration "byte ****local_2c;" type_identifier (pointer_declarator "****local_2c" * (pointer_declarator "***local_2c" * (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)))) ;) (declaration "int local_28;" primitive_type identifier ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = FUN_000b484e();" (assignment_expression "uVar28 = FUN_000b484e()" identifier = (call_expression "FUN_000b484e()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_b0 = (int *)((ulonglong)uVar28 >> 0x20);" (assignment_expression "local_b0 = (int *)((ulonglong)uVar28 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar28 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" ( (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_ec = (int)uVar28;" (assignment_expression "local_ec = (int)uVar28" identifier = (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_e0 = unaff_EDI + 0x39c927;" (assignment_expression "local_e0 = unaff_EDI + 0x39c927" identifier = (binary_expression "unaff_EDI + 0x39c927" identifier + number_literal)) ;) (expression_statement "local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;" (assignment_expression "local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6" identifier = (binary_expression "BYTE_ARRAY_0039ce09 + unaff_EDI + 6" (binary_expression "BYTE_ARRAY_0039ce09 + unaff_EDI" identifier + identifier) + number_literal)) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }" if (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) == 0" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }" { (expression_statement "FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);" (call_expression "FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI)" identifier (argument_list "(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI)" ( (binary_expression "unaff_EDI + 0x26ab94" identifier + number_literal) , number_literal , (binary_expression "&UNK_0027eccf + unaff_EDI" (pointer_expression "&UNK_0027eccf" & identifier) + identifier) ))) ;) })) (expression_statement "local_c0 = (byte ****)extraout_ECX;" (assignment_expression "local_c0 = (byte ****)extraout_ECX" identifier = (cast_expression "(byte ****)extraout_ECX" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (if_statement "if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) + 0x5934)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) + 0x5934" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }" { (expression_statement "local_114 = local_44;" (assignment_expression "local_114 = local_44" identifier = identifier) ;) (expression_statement "local_4c[0] = local_114;" (assignment_expression "local_4c[0] = local_114" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);" (call_expression "FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add)" identifier (argument_list "(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add)" ( identifier , (binary_expression "unaff_EDI + 0x299add" identifier + number_literal) , (binary_expression "unaff_EDI + 0x299add" identifier + number_literal) ))) ;) (expression_statement "puVar19 = auStack_11c;" (assignment_expression "puVar19 = auStack_11c" identifier = identifier) ;) (expression_statement "uVar12 = extraout_ECX_01;" (assignment_expression "uVar12 = extraout_ECX_01" identifier = identifier) ;) }) (else_clause "else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" else (compound_statement "{\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" { (if_statement "if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" if (parenthesized_expression "((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57))" ( (binary_expression "(*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)" (subscript_expression "(*extraout_ECX)[0x10]" (parenthesized_expression "(*extraout_ECX)" ( (pointer_expression "*extraout_ECX" * identifier) )) [ number_literal ]) == (cast_expression "(byte ***)(unaff_EDI + 0x39d57)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(unaff_EDI + 0x39d57)" ( (binary_expression "unaff_EDI + 0x39d57" identifier + number_literal) )))) )) (compound_statement "{\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }" { (expression_statement "FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);" (call_expression "FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1)" identifier (argument_list "(local_4c,extraout_ECX + 0x24,param_1)" ( identifier , (binary_expression "extraout_ECX + 0x24" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar12 = extraout_ECX_00;" (assignment_expression "uVar12 = extraout_ECX_00" identifier = identifier) ;) }) (else_clause "else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" else (compound_statement "{\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" { (expression_statement "(*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);" (call_expression "(*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1)" (parenthesized_expression "(*(code *)(*extraout_ECX)[0x10])" ( (pointer_expression "*(code *)(*extraout_ECX)[0x10]" * (cast_expression "(code *)(*extraout_ECX)[0x10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*extraout_ECX)[0x10]" (parenthesized_expression "(*extraout_ECX)" ( (pointer_expression "*extraout_ECX" * identifier) )) [ number_literal ]))) )) (argument_list "(local_4c,extraout_ECX,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = extraout_ECX_02;" (assignment_expression "uVar12 = extraout_ECX_02" identifier = identifier) ;) }))) (expression_statement "local_114 = local_44;" (assignment_expression "local_114 = local_44" identifier = identifier) ;) (expression_statement "puVar19 = &stack0xfffffee0;" (assignment_expression "puVar19 = &stack0xfffffee0" identifier = (pointer_expression "&stack0xfffffee0" & identifier)) ;) }))) (expression_statement "pbVar21 = local_4c[0];" (assignment_expression "pbVar21 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }" if (parenthesized_expression "(*(int *)(iVar16 + 8) == 0)" ( (binary_expression "*(int *)(iVar16 + 8) == 0" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }" { (expression_statement "*(undefined4 *)(puVar19 + -4) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -4)" * (cast_expression "(undefined4 *)(puVar19 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -4)" ( (binary_expression "puVar19 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar19 + -8)" * (cast_expression "(int *)(puVar19 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar19 + -0xc)" * (cast_expression "(undefined4 *)(puVar19 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar19 + -0x10)" * (cast_expression "(int *)(puVar19 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78688;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78688" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar16 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar16 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar16 + 8) + 0x5934" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }" { (labeled_statement "LAB_000777af:\n    local_d9 = '\0';" statement_identifier : (expression_statement "local_d9 = '\0';" (assignment_expression "local_d9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" identifier = number_literal) ;) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" else (compound_statement "{\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" { (expression_statement "local_bc = (byte ****)&local_2c;" (assignment_expression "local_bc = (byte ****)&local_2c" identifier = (cast_expression "(byte ****)&local_2c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "local_34 = local_bc;" (assignment_expression "local_34 = local_bc" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (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 **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\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 **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }" { (expression_statement "*(byte **)(puVar19 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0x10)" * (cast_expression "(byte **)(puVar19 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78417;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78417" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar10 = strlen(*(char **)(puVar19 + -0x10));" (assignment_expression "sVar10 = strlen(*(char **)(puVar19 + -0x10))" identifier = (call_expression "strlen(*(char **)(puVar19 + -0x10))" identifier (argument_list "(*(char **)(puVar19 + -0x10))" ( (pointer_expression "*(char **)(puVar19 + -0x10)" * (cast_expression "(char **)(puVar19 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "pbVar13 = pbVar21 + sVar10;" (assignment_expression "pbVar13 = pbVar21 + sVar10" identifier = (binary_expression "pbVar21 + sVar10" identifier + identifier)) ;) })) (expression_statement "*(undefined4 *)(puVar19 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar19 + -4)" * (cast_expression "(undefined4 *)(puVar19 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -4)" ( (binary_expression "puVar19 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar19 + -8) = pbVar13;" (assignment_expression "*(byte **)(puVar19 + -8) = pbVar13" (pointer_expression "*(byte **)(puVar19 + -8)" * (cast_expression "(byte **)(puVar19 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "*(byte **)(puVar19 + -0xc) = pbVar21;" (assignment_expression "*(byte **)(puVar19 + -0xc) = pbVar21" (pointer_expression "*(byte **)(puVar19 + -0xc)" * (cast_expression "(byte **)(puVar19 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar19 + -0x10) = local_c4;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_c4" (pointer_expression "*(byte *****)(puVar19 + -0x10)" * (cast_expression "(byte *****)(puVar19 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7842f;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7842f" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" identifier = number_literal) ;) (expression_statement "bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;" (assignment_expression "bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10" identifier = (binary_expression "(undefined1 *)0xffffffef < puVar19 + -0x10" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar19 + -0x10" identifier + number_literal))) ;) (expression_statement "bVar26 = puVar19 == (undefined1 *)0x0;" (assignment_expression "bVar26 = puVar19 == (undefined1 *)0x0" identifier = (binary_expression "puVar19 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11d050);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11d050)" identifier = (cast_expression "(byte *)(local_e0 + -0x11d050)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11d050)" ( (binary_expression "local_e0 + -0x11d050" identifier + number_literal) )))) ;) (expression_statement "pppppbVar23 = (byte *****)local_34;" (assignment_expression "pppppbVar23 = (byte *****)local_34" identifier = (cast_expression "(byte *****)local_34" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (do_statement "do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);" do (compound_statement "{\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *(byte *)pppppbVar23;" (assignment_expression "bVar24 = *pbVar21 < *(byte *)pppppbVar23" identifier = (binary_expression "*pbVar21 < *(byte *)pppppbVar23" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*(byte *)pppppbVar23" * (cast_expression "(byte *)pppppbVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar26 = *pbVar21 == *(byte *)pppppbVar23;" (assignment_expression "bVar26 = *pbVar21 == *(byte *)pppppbVar23" identifier = (binary_expression "*pbVar21 == *(byte *)pppppbVar23" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*(byte *)pppppbVar23" * (cast_expression "(byte *)pppppbVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);" (assignment_expression "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2 + 1" (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }" { (expression_statement "iVar16 = 0xf;" (assignment_expression "iVar16 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf51);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf51)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf51)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf51)" ( (binary_expression "local_e0 + -0x11cf51" identifier + number_literal) )))) ;) (expression_statement "pppppbVar23 = (byte *****)local_34;" (assignment_expression "pppppbVar23 = (byte *****)local_34" identifier = (cast_expression "(byte *****)local_34" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);" do (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *(byte *)pppppbVar23;" (assignment_expression "bVar25 = *pbVar21 < *(byte *)pppppbVar23" identifier = (binary_expression "*pbVar21 < *(byte *)pppppbVar23" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*(byte *)pppppbVar23" * (cast_expression "(byte *)pppppbVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar24 = *pbVar21 == *(byte *)pppppbVar23;" (assignment_expression "bVar24 = *pbVar21 == *(byte *)pppppbVar23" identifier = (binary_expression "*pbVar21 == *(byte *)pppppbVar23" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*(byte *)pppppbVar23" * (cast_expression "(byte *)pppppbVar23" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);" (assignment_expression "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2 + 1" (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }" if (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" ( (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }" { (if_statement "if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" if (parenthesized_expression "(local_34 == local_bc)" ( (binary_expression "local_34 == local_bc" identifier == identifier) )) (compound_statement "{\n          iVar16 = *(int *)local_e4;\n        }" { (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" else (compound_statement "{\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" { (expression_statement "*(byte *****)(puVar19 + -0x10) = local_34;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_34" (pointer_expression "*(byte *****)(puVar19 + -0x10)" * (cast_expression "(byte *****)(puVar19 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78539;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78539" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (goto_statement "goto LAB_000777af;" goto statement_identifier ;) })) })) (if_statement "if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }" if (parenthesized_expression "(local_34 != local_bc)" ( (binary_expression "local_34 != local_bc" identifier != identifier) )) (compound_statement "{\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }" { (expression_statement "*(byte *****)(puVar19 + -0x10) = local_34;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_34" (pointer_expression "*(byte *****)(puVar19 + -0x10)" * (cast_expression "(byte *****)(puVar19 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78664;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78664" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(byte *****)(puVar19 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar19 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar19 + -0xc)" * (cast_expression "(byte *****)(puVar19 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" identifier = identifier) ;) (expression_statement "local_30 = (byte ***)param_1;" (assignment_expression "local_30 = (byte ***)param_1" identifier = (cast_expression "(byte ***)param_1" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_bc = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_bc = *(byte *****)(local_ec + 0x15c)" identifier = (pointer_expression "*(byte *****)(local_ec + 0x15c)" * (cast_expression "(byte *****)(local_ec + 0x15c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;" (assignment_expression "*(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15" (pointer_expression "*(byte ******)(puVar19 + -0x10)" * (cast_expression "(byte ******)(puVar19 + -0x10)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (binary_expression "(byte *****)local_bc + 0x15" (cast_expression "(byte *****)local_bc" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x784b0;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x784b0" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_fc = FUN_000acc50();" (assignment_expression "local_fc = FUN_000acc50()" identifier = (call_expression "FUN_000acc50()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_f8 = local_fc + 0xc;" (assignment_expression "local_f8 = local_fc + 0xc" identifier = (binary_expression "local_fc + 0xc" identifier + number_literal)) ;) (expression_statement "local_100 = local_fc + 0x18;" (assignment_expression "local_100 = local_fc + 0x18" identifier = (binary_expression "local_fc + 0x18" identifier + number_literal)) ;) (expression_statement "local_f4 = local_fc + 0x24;" (assignment_expression "local_f4 = local_fc + 0x24" identifier = (binary_expression "local_fc + 0x24" identifier + number_literal)) ;) (expression_statement "local_104 = local_fc + 0x30;" (assignment_expression "local_104 = local_fc + 0x30" identifier = (binary_expression "local_fc + 0x30" identifier + number_literal)) ;) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" identifier = (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_d9 = '\x01';" (assignment_expression "local_d9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "piVar4 = local_b0;" (assignment_expression "piVar4 = local_b0" identifier = identifier) ;) (if_statement "if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }" if (parenthesized_expression "(*(int *)(iVar16 + 8) == 0)" ( (binary_expression "*(int *)(iVar16 + 8) == 0" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }" { (expression_statement "*(undefined4 *)(puVar19 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar19 + -4)" * (cast_expression "(undefined4 *)(puVar19 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -4)" ( (binary_expression "puVar19 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar19 + -8)" * (cast_expression "(int *)(puVar19 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -8)" ( (binary_expression "puVar19 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar19 + -0xc)" * (cast_expression "(undefined4 *)(puVar19 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar19 + -0x10)" * (cast_expression "(int *)(puVar19 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;" (assignment_expression "*(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc" (pointer_expression "*(undefined1 **)(puVar19 + -0x14)" * (cast_expression "(undefined1 **)(puVar19 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = (pointer_expression "&LAB_000786bc" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2)" ( (binary_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934)" * (cast_expression "(int *)(*(int *)(iVar16 + 8) + 0x5934)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar16 + 8) + 0x5934)" ( (binary_expression "*(int *)(iVar16 + 8) + 0x5934" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar16 = *local_b0;" (assignment_expression "iVar16 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" * (cast_expression "(int **)(puVar19 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar6 = *(code **)(iVar16 + 0x48);" (assignment_expression "pcVar6 = *(code **)(iVar16 + 0x48)" identifier = (pointer_expression "*(code **)(iVar16 + 0x48)" * (cast_expression "(code **)(iVar16 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x48)" ( (binary_expression "iVar16 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7831b;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7831b" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar9 = (*pcVar6)();" (assignment_expression "cVar9 = (*pcVar6)()" identifier = (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }" { (expression_statement "pcVar6 = *(code **)(*piVar4 + 8);" (assignment_expression "pcVar6 = *(code **)(*piVar4 + 8)" identifier = (pointer_expression "*(code **)(*piVar4 + 8)" * (cast_expression "(code **)(*piVar4 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 8)" ( (binary_expression "*piVar4 + 8" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" if (parenthesized_expression "(pcVar6 != (code *)(local_e0 + -0x36d580))" ( (binary_expression "pcVar6 != (code *)(local_e0 + -0x36d580)" identifier != (cast_expression "(code *)(local_e0 + -0x36d580)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x36d580)" ( (binary_expression "local_e0 + -0x36d580" identifier + number_literal) )))) )) (compound_statement "{\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" { (expression_statement "*(byte **)(puVar19 + -0xc) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0xc) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0xc)" * (cast_expression "(byte **)(puVar19 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" * (cast_expression "(int **)(puVar19 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7856c;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7856c" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_da = (*pcVar6)();" (assignment_expression "local_da = (*pcVar6)()" identifier = (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00077807;" goto statement_identifier ;) })) (expression_statement "pcVar6 = *(code **)(*piVar4 + 0x4c);" (assignment_expression "pcVar6 = *(code **)(*piVar4 + 0x4c)" identifier = (pointer_expression "*(code **)(*piVar4 + 0x4c)" * (cast_expression "(code **)(*piVar4 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x4c)" ( (binary_expression "*piVar4 + 0x4c" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (expression_statement "bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);" (assignment_expression "bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U)" identifier = (binary_expression "pcVar6 < (code *)(local_e0 - 0x36d4c0U)" identifier < (cast_expression "(code *)(local_e0 - 0x36d4c0U)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 - 0x36d4c0U)" ( (binary_expression "local_e0 - 0x36d4c0U" identifier - number_literal) ))))) ;) (expression_statement "bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);" (assignment_expression "bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U)" identifier = (binary_expression "pcVar6 == (code *)(local_e0 - 0x36d4c0U)" identifier == (cast_expression "(code *)(local_e0 - 0x36d4c0U)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 - 0x36d4c0U)" ( (binary_expression "local_e0 - 0x36d4c0U" identifier - number_literal) ))))) ;) (if_statement "if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" { (expression_statement "*(byte **)(puVar19 + -0xc) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0xc) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0xc)" * (cast_expression "(byte **)(puVar19 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0xc)" ( (binary_expression "puVar19 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" * (cast_expression "(int **)(puVar19 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78586;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78586" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_da = (*pcVar6)();" (assignment_expression "local_da = (*pcVar6)()" identifier = (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( )))) ;) (goto_statement "goto LAB_00077807;" goto statement_identifier ;) })) (expression_statement "iVar16 = 0xc;" (assignment_expression "iVar16 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c39e);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c39e)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c39e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c39e)" ( (binary_expression "local_e0 + -0x11c39e" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *pbVar13;" (assignment_expression "bVar24 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar26 = *pbVar21 == *pbVar13;" (assignment_expression "bVar26 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }" { (expression_statement "iVar16 = 0x11;" (assignment_expression "iVar16 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c391);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c391)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c391)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c391)" ( (binary_expression "local_e0 + -0x11c391" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *pbVar13;" (assignment_expression "bVar25 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }" { (expression_statement "iVar16 = 0xc;" (assignment_expression "iVar16 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c37f);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c37f)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c37f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c37f)" ( (binary_expression "local_e0 + -0x11c37f" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar21 < *pbVar13;" (assignment_expression "bVar26 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar26 && !bVar24) == bVar26;" (assignment_expression "bVar24 = (!bVar26 && !bVar24) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar24) == bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" ( (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }" { (expression_statement "iVar16 = 0x11;" (assignment_expression "iVar16 = 0x11" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c372);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c372)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c372)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c372)" ( (binary_expression "local_e0 + -0x11c372" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);" do (compound_statement "{\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *pbVar13;" (assignment_expression "bVar25 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }" { (expression_statement "iVar16 = 9;" (assignment_expression "iVar16 = 9" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c360);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c360)" identifier = (cast_expression "(byte *)(local_e0 + -0x11c360)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11c360)" ( (binary_expression "local_e0 + -0x11c360" identifier + number_literal) )))) ;) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" identifier = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);" do (compound_statement "{\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar21 < *pbVar13;" (assignment_expression "bVar26 = *pbVar21 < *pbVar13" identifier = (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" identifier = (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "local_da = (!bVar26 && !bVar24) != bVar26;" (assignment_expression "local_da = (!bVar26 && !bVar24) != bVar26" identifier = (binary_expression "(!bVar26 && !bVar24) != bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" ( (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier)) ;) (goto_statement "goto LAB_00077807;" goto statement_identifier ;) })) })) })) })) })) })) (expression_statement "local_da = '\0';" (assignment_expression "local_da = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" statement_identifier : (if_statement "if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" if (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" { (expression_statement "local_e8 = (byte ***)0x0;" (assignment_expression "local_e8 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "local_f0 = local_a4;" (assignment_expression "local_f0 = local_a4" identifier = identifier) ;) (expression_statement "local_110 = (byte ****)&local_90;" (assignment_expression "local_110 = (byte ****)&local_90" identifier = (cast_expression "(byte ****)&local_90" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_90" & identifier))) ;) (expression_statement "local_b0 = (int *)0x0;" (assignment_expression "local_b0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" identifier = identifier) ;) (do_statement "do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);" do (compound_statement "{\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    }" { (expression_statement "ppppbVar22 = local_c0;" (assignment_expression "ppppbVar22 = local_c0" identifier = identifier) ;) (expression_statement "local_d8 = param_2[2];" (assignment_expression "local_d8 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = param_2[5];" (assignment_expression "local_b8 = param_2[5]" identifier = (subscript_expression "param_2[5]" identifier [ number_literal ])) ;) (expression_statement "ppppbVar3 = (byte ****)param_2[3];" (assignment_expression "ppppbVar3 = (byte ****)param_2[3]" identifier = (cast_expression "(byte ****)param_2[3]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "local_bc = (byte ****)param_2[4];" (assignment_expression "local_bc = (byte ****)param_2[4]" identifier = (cast_expression "(byte ****)param_2[4]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (if_statement "if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" if (parenthesized_expression "(ppppbVar3 < param_4)" ( (binary_expression "ppppbVar3 < param_4" identifier < identifier) )) (compound_statement "{\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" { (if_statement "if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11e2b4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11cf41" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785a9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785a9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar16 = param_5 + (int)ppppbVar3 * 0x18;" (assignment_expression "iVar16 = param_5 + (int)ppppbVar3 * 0x18" identifier = (binary_expression "param_5 + (int)ppppbVar3 * 0x18" identifier + (binary_expression "(int)ppppbVar3 * 0x18" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);" (assignment_expression "local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6)" identifier = (binary_expression "(byte ***)(uint)*(ushort *)(iVar16 + 6)" (cast_expression "(byte ***)(uint)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar16 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 6)" ( (binary_expression "iVar16 + 6" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" if (parenthesized_expression "(local_b4 < (byte ****)0xff00)" ( (binary_expression "local_b4 < (byte ****)0xff00" identifier < (cast_expression "(byte ****)0xff00" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }" { (labeled_statement "LAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);" statement_identifier : (expression_statement "local_cc = *(byte *****)(iVar16 + 8);" (assignment_expression "local_cc = *(byte *****)(iVar16 + 8)" identifier = (pointer_expression "*(byte *****)(iVar16 + 8)" * (cast_expression "(byte *****)(iVar16 + 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) ))))) ;)) (expression_statement "local_c8 = *(int *)(iVar16 + 0xc);" (assignment_expression "local_c8 = *(int *)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *)(iVar16 + 0xc)" * (cast_expression "(int *)(iVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_cc);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_cc)" identifier = (cast_expression "(byte *)((int)local_bc + (int)local_cc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + (int)local_cc)" ( (binary_expression "(int)local_bc + (int)local_cc" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_cc" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);" (assignment_expression "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" identifier = (binary_expression "local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" (binary_expression "local_b8 + local_c8" identifier + identifier) + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_cc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_cc)" identifier (argument_list "((uint)local_bc,(uint)local_cc)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (if_statement "if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }" if (parenthesized_expression "(local_d9 != '\0')" ( (binary_expression "local_d9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }" { (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" identifier = identifier) ;) (expression_statement "local_30 = local_b4;" (assignment_expression "local_30 = local_b4" identifier = identifier) ;) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77a51;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77a51" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (if_statement "if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;" if (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) == 3)" ( (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" * (cast_expression "(byte *)(iVar16 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00077a68;" goto statement_identifier ;)) (labeled_statement "LAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x778e3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x778e3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aafe0();" (call_expression "FUN_000aafe0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000778e3;" goto statement_identifier ;) })) }) (else_clause "else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" else (compound_statement "{\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" { (if_statement "if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }" if (parenthesized_expression "((byte ****)local_b4 == (byte ****)0xffff)" ( (binary_expression "(byte ****)local_b4 == (byte ****)0xffff" (cast_expression "(byte ****)local_b4" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (cast_expression "(byte ****)0xffff" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }" { (expression_statement "ppppbVar11 = (byte ****)local_c0[0xc];" (assignment_expression "ppppbVar11 = (byte ****)local_c0[0xc]" identifier = (cast_expression "(byte ****)local_c0[0xc]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_c0[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }" if (parenthesized_expression "(ppppbVar11 == (byte ****)0x0)" ( (binary_expression "ppppbVar11 == (byte ****)0x0" identifier == (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }" { (expression_statement "ppppbVar11 = (byte ****)*local_c0;" (assignment_expression "ppppbVar11 = (byte ****)*local_c0" identifier = (cast_expression "(byte ****)*local_c0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_c0" * identifier))) ;) (expression_statement "*(byte *****)(puVar20 + -0x10) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0x10) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0x10)" * (cast_expression "(byte *****)(puVar20 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pppbVar7 = ppppbVar11[0x1b];" (assignment_expression "pppbVar7 = ppppbVar11[0x1b]" identifier = (subscript_expression "ppppbVar11[0x1b]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7816f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7816f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "ppppbVar11 = (byte ****)(*(code *)pppbVar7)();" (assignment_expression "ppppbVar11 = (byte ****)(*(code *)pppbVar7)()" identifier = (cast_expression "(byte ****)(*(code *)pppbVar7)()" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)pppbVar7)()" (parenthesized_expression "(*(code *)pppbVar7)" ( (pointer_expression "*(code *)pppbVar7" * (cast_expression "(code *)pppbVar7" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "ppppbVar22[0xc] = (byte ***)ppppbVar11;" (assignment_expression "ppppbVar22[0xc] = (byte ***)ppppbVar11" (subscript_expression "ppppbVar22[0xc]" identifier [ number_literal ]) = (cast_expression "(byte ***)ppppbVar11" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) })) (expression_statement "*(byte *****)(puVar20 + -8) = ppppbVar3;" (assignment_expression "*(byte *****)(puVar20 + -8) = ppppbVar3" (pointer_expression "*(byte *****)(puVar20 + -8)" * (cast_expression "(byte *****)(puVar20 + -8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x10) = ppppbVar11;" (assignment_expression "*(byte *****)(puVar20 + -0x10) = ppppbVar11" (pointer_expression "*(byte *****)(puVar20 + -0x10)" * (cast_expression "(byte *****)(puVar20 + -0x10)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7809f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7809f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_b4 = (byte ***)FUN_00121c60();" (assignment_expression "local_b4 = (byte ***)FUN_00121c60()" identifier = (cast_expression "(byte ***)FUN_00121c60()" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "FUN_00121c60()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_000779f0;" goto statement_identifier ;) })) (expression_statement "local_cc = *(byte *****)(iVar16 + 8);" (assignment_expression "local_cc = *(byte *****)(iVar16 + 8)" identifier = (pointer_expression "*(byte *****)(iVar16 + 8)" * (cast_expression "(byte *****)(iVar16 + 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_c8 = *(int *)(iVar16 + 0xc);" (assignment_expression "local_c8 = *(int *)(iVar16 + 0xc)" identifier = (pointer_expression "*(int *)(iVar16 + 0xc)" * (cast_expression "(int *)(iVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_cc);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_cc)" identifier = (cast_expression "(byte *)((int)local_bc + (int)local_cc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + (int)local_cc)" ( (binary_expression "(int)local_bc + (int)local_cc" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_cc" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);" (assignment_expression "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" identifier = (binary_expression "local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" (binary_expression "local_b8 + local_c8" identifier + identifier) + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_cc)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_cc)" identifier (argument_list "((uint)local_bc,(uint)local_cc)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_cc" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (if_statement "if (local_d9 == '\0') goto LAB_00077980;" if (parenthesized_expression "(local_d9 == '\0')" ( (binary_expression "local_d9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00077980;" goto statement_identifier ;)) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x778b4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x778b4" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (if_statement "if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;" if (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) != 3)" ( (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" * (cast_expression "(byte *)(iVar16 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000778c8;" goto statement_identifier ;)) (labeled_statement "LAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (byte ****)0xffffffff;" (assignment_expression "local_34 = (byte ****)0xffffffff" identifier = (cast_expression "(byte ****)0xffffffff" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77a83;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77a83" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aafe0();" (call_expression "FUN_000aafe0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;" statement_identifier : (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(int *)(puVar20 + -0x10) = local_100;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_100" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = local_cc;" (assignment_expression "local_34 = local_cc" identifier = identifier) ;) (expression_statement "local_30 = (byte ***)local_c8;" (assignment_expression "local_30 = (byte ***)local_c8" identifier = (cast_expression "(byte ***)local_c8" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_2c = local_bc;" (assignment_expression "local_2c = local_bc" identifier = identifier) ;) (expression_statement "local_28 = local_b8;" (assignment_expression "local_28 = local_b8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7791e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7791e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000ab1b0();" (call_expression "FUN_000ab1b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppppbVar23 = (byte *****)*param_2;" (assignment_expression "pppppbVar23 = (byte *****)*param_2" identifier = (cast_expression "(byte *****)*param_2" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }" if (parenthesized_expression "(param_2[1] != 0)" ( (binary_expression "param_2[1] != 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11de3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11cc44" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78648;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78648" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "puVar2 = *(undefined4 **)(local_f4 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f4 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_f4 + 4)" * (cast_expression "(undefined4 **)(local_f4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 4)" ( (binary_expression "local_f4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (byte ****)pppppbVar23;" (assignment_expression "local_34 = (byte ****)pppppbVar23" identifier = (cast_expression "(byte ****)pppppbVar23" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f4 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_f4 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_f4 + 8)" * (cast_expression "(undefined4 **)(local_f4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 8)" ( (binary_expression "local_f4 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }" { (expression_statement "*(byte *****)(puVar20 + -8) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -8) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -8)" * (cast_expression "(byte *****)(puVar20 + -8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_f4;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f4" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78155;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78155" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa950();" (call_expression "FUN_000aa950()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" else (compound_statement "{\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" { (expression_statement "*puVar2 = pppppbVar23;" (assignment_expression "*puVar2 = pppppbVar23" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_f4 + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_f4 + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_f4 + 4)" * (cast_expression "(undefined4 **)(local_f4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 4)" ( (binary_expression "local_f4 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_6c = (byte ****)0x0;" (assignment_expression "local_6c = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(byte ******)(puVar20 + -0xc) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0xc) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0xc)" * (cast_expression "(byte ******)(puVar20 + -0xc)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_104;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_104" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77975;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77975" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000ab360();" (call_expression "FUN_000ab360()" identifier (argument_list "()" ( ))) ;) (if_statement "if (!bVar24) goto LAB_00077980;" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (goto_statement "goto LAB_00077980;" goto statement_identifier ;)) }))) (if_statement "if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }" if (parenthesized_expression "((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0))))" ( (binary_expression "(((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))" (parenthesized_expression "(((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1))" ( (binary_expression "((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)" (parenthesized_expression "((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1))" ( (binary_expression "(local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)" (parenthesized_expression "(local_da != '\0')" ( (binary_expression "local_da != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) != 1)" ( (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" * (cast_expression "(byte *)(iVar16 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)" ( (comma_expression "local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1" (assignment_expression "local_bc = (byte ****)local_c0[0x54]" identifier = (cast_expression "(byte ****)local_c0[0x54]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_c0[0x54]" identifier [ number_literal ]))) , (binary_expression "((uint)local_bc & 3) != 1" (parenthesized_expression "((uint)local_bc & 3)" ( (binary_expression "(uint)local_bc & 3" (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))" ( (parenthesized_expression "(0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0))" ( (binary_expression "0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)" (binary_expression "0x17 < local_d8" number_literal < identifier) || (parenthesized_expression "((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)" ( (binary_expression "(0x843f84U >> (local_d8 & 0x1f) & 1) == 0" (parenthesized_expression "(0x843f84U >> (local_d8 & 0x1f) & 1)" ( (binary_expression "0x843f84U >> (local_d8 & 0x1f) & 1" (binary_expression "0x843f84U >> (local_d8 & 0x1f)" number_literal >> (parenthesized_expression "(local_d8 & 0x1f)" ( (binary_expression "local_d8 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }" { (expression_statement "local_bc = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_bc = *(byte *****)(local_ec + 0x15c)" identifier = (pointer_expression "*(byte *****)(local_ec + 0x15c)" * (cast_expression "(byte *****)(local_ec + 0x15c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "local_7c = local_c0;" (assignment_expression "local_7c = local_c0" identifier = identifier) ;) (expression_statement "local_78 = (uint)*(ushort *)(iVar16 + 6);" (assignment_expression "local_78 = (uint)*(ushort *)(iVar16 + 6)" identifier = (binary_expression "(uint)*(ushort *)(iVar16 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar16 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 6)" ( (binary_expression "iVar16 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_9c = (byte ****)((byte *****)local_bc + 0xd);" (assignment_expression "local_9c = (byte ****)((byte *****)local_bc + 0xd)" identifier = (cast_expression "(byte ****)((byte *****)local_bc + 0xd)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((byte *****)local_bc + 0xd)" ( (binary_expression "(byte *****)local_bc + 0xd" (cast_expression "(byte *****)local_bc" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) ;) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_9c;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_9c" (pointer_expression "*(byte ******)(puVar20 + -0x14)" * (cast_expression "(byte ******)(puVar20 + -0x14)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_9c" & identifier)) ;) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_7c;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_7c" (pointer_expression "*(byte ******)(puVar20 + -0x18)" * (cast_expression "(byte ******)(puVar20 + -0x18)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_9c;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_9c" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" * (cast_expression "(byte *****)(puVar20 + -0x1c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" * (cast_expression "(undefined1 **)(puVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77ddf;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77ddf" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a8d90();" (call_expression "FUN_000a8d90()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) })) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(param_1 != (byte ****)local_b4)" ( (binary_expression "param_1 != (byte ****)local_b4" identifier != (cast_expression "(byte ****)local_b4" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) )) (compound_statement "{\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_cc = local_c0;" (assignment_expression "local_cc = local_c0" identifier = identifier) ;) (labeled_statement "LAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" statement_identifier : (if_statement "if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" if (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) == 0" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dc58" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785c7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785c7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" * (cast_expression "(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" ( (binary_expression "*(int *)(*(int *)local_e4 + 8) + 0x18b1" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" * (cast_expression "(int *)(*(int *)local_e4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_e4 + 8)" ( (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }" { (expression_statement "pppppbVar23 = *(byte ******)(local_ec + 0x158);" (assignment_expression "pppppbVar23 = *(byte ******)(local_ec + 0x158)" identifier = (pointer_expression "*(byte ******)(local_ec + 0x158)" * (cast_expression "(byte ******)(local_ec + 0x158)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(local_ec + 0x158)" ( (binary_expression "local_ec + 0x158" identifier + number_literal) ))))) ;) (expression_statement "local_74 = local_c0;" (assignment_expression "local_74 = local_c0" identifier = identifier) ;) (expression_statement "local_70 = (byte ***)param_1;" (assignment_expression "local_70 = (byte ***)param_1" identifier = (cast_expression "(byte ***)param_1" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_6c = local_cc;" (assignment_expression "local_6c = local_cc" identifier = identifier) ;) (expression_statement "local_68 = local_b4;" (assignment_expression "local_68 = local_b4" identifier = identifier) ;) (expression_statement "pppppbVar8 = (byte *****)pppppbVar23[6];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar23[6]" identifier = (cast_expression "(byte *****)pppppbVar23[6]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar23[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar14 = pppppbVar23 + 5;" (assignment_expression "pppppbVar14 = pppppbVar23 + 5" identifier = (binary_expression "pppppbVar23 + 5" identifier + number_literal)) ;) (if_statement "if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" if (parenthesized_expression "((byte *****)pppppbVar23[6] == (byte *****)0x0)" ( (binary_expression "(byte *****)pppppbVar23[6] == (byte *****)0x0" (cast_expression "(byte *****)pppppbVar23[6]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar23[6]" identifier [ number_literal ])) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }" { (labeled_statement "LAB_00077ba0:\n              local_8c = (byte ****)&local_74;" statement_identifier : (expression_statement "local_8c = (byte ****)&local_74;" (assignment_expression "local_8c = (byte ****)&local_74" identifier = (cast_expression "(byte ****)&local_74" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_74" & identifier))) ;)) (expression_statement "*(byte ******)(puVar20 + -0x10) = &local_8c;" (assignment_expression "*(byte ******)(puVar20 + -0x10) = &local_8c" (pointer_expression "*(byte ******)(puVar20 + -0x10)" * (cast_expression "(byte ******)(puVar20 + -0x10)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_8c" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77bc1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77bc1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00068840();" (call_expression "FUN_00068840()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppppbVar15 = (byte *****)local_a8;" (assignment_expression "pppppbVar15 = (byte *****)local_a8" identifier = (cast_expression "(byte *****)local_a8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) }) (else_clause "else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" else (compound_statement "{\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" { (do_statement "do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);" do (compound_statement "{\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              }" { (while_statement "while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }" while (parenthesized_expression "((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))))" ( (parenthesized_expression "(pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))" ( (comma_expression "pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (assignment_expression "pppppbVar15 = pppppbVar8" identifier = identifier) , (binary_expression "pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (binary_expression "pppppbVar15[4] < local_c0" (subscript_expression "pppppbVar15[4]" identifier [ number_literal ]) < identifier) || (parenthesized_expression "((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" ( (parenthesized_expression "(local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))" ( (binary_expression "local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)" (binary_expression "local_c0 == pppppbVar15[4]" identifier == (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) && (parenthesized_expression "(pppppbVar15[5] < param_1)" ( (binary_expression "pppppbVar15[5] < param_1" (subscript_expression "pppppbVar15[5]" identifier [ number_literal ]) < identifier) ))) )) )))) )) )) (compound_statement "{\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }" { (expression_statement "pppppbVar1 = pppppbVar15 + 3;" (assignment_expression "pppppbVar1 = pppppbVar15 + 3" identifier = (binary_expression "pppppbVar15 + 3" identifier + number_literal)) ;) (expression_statement "pppppbVar8 = (byte *****)*pppppbVar1;" (assignment_expression "pppppbVar8 = (byte *****)*pppppbVar1" identifier = (cast_expression "(byte *****)*pppppbVar1" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppbVar1" * identifier))) ;) (expression_statement "pppppbVar15 = pppppbVar14;" (assignment_expression "pppppbVar15 = pppppbVar14" identifier = identifier) ;) (if_statement "if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;" if (parenthesized_expression "((byte *****)*pppppbVar1 == (byte *****)0x0)" ( (binary_expression "(byte *****)*pppppbVar1 == (byte *****)0x0" (cast_expression "(byte *****)*pppppbVar1" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppbVar1" * identifier)) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00077b7c;" goto statement_identifier ;)) })) (expression_statement "pppppbVar8 = (byte *****)pppppbVar15[2];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar15[2]" identifier = (cast_expression "(byte *****)pppppbVar15[2]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar15[2]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar14 = pppppbVar15;" (assignment_expression "pppppbVar14 = pppppbVar15" identifier = identifier) ;) }) while (parenthesized_expression "((byte *****)pppppbVar15[2] != (byte *****)0x0)" ( (binary_expression "(byte *****)pppppbVar15[2] != (byte *****)0x0" (cast_expression "(byte *****)pppppbVar15[2]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar15[2]" identifier [ number_literal ])) != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) (labeled_statement "LAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;" statement_identifier : (expression_statement "local_bc = (byte ****)pppppbVar23;" (assignment_expression "local_bc = (byte ****)pppppbVar23" identifier = (cast_expression "(byte ****)pppppbVar23" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (if_statement "if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;" if (parenthesized_expression "(((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))" ( (binary_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" (parenthesized_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4]))" ( (binary_expression "(pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])" (parenthesized_expression "(pppppbVar15 == pppppbVar23 + 5)" ( (binary_expression "pppppbVar15 == pppppbVar23 + 5" identifier == (binary_expression "pppppbVar23 + 5" identifier + number_literal)) )) || (parenthesized_expression "(local_c0 < pppppbVar15[4])" ( (binary_expression "local_c0 < pppppbVar15[4]" identifier < (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" ( (parenthesized_expression "(local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))" ( (binary_expression "local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])" (binary_expression "local_c0 == pppppbVar15[4]" identifier == (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) && (parenthesized_expression "(param_1 < pppppbVar15[5])" ( (binary_expression "param_1 < pppppbVar15[5]" identifier < (subscript_expression "pppppbVar15[5]" identifier [ number_literal ])) ))) )) ))) )) (goto_statement "goto LAB_00077ba0;" goto statement_identifier ;)) }))) (expression_statement "local_90 = (byte ****)(pppppbVar15 + 6);" (assignment_expression "local_90 = (byte ****)(pppppbVar15 + 6)" identifier = (cast_expression "(byte ****)(pppppbVar15 + 6)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(pppppbVar15 + 6)" ( (binary_expression "pppppbVar15 + 6" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_110;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_110" (pointer_expression "*(byte *****)(puVar20 + -0x14)" * (cast_expression "(byte *****)(puVar20 + -0x14)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0x18)" * (cast_expression "(byte ******)(puVar20 + -0x18)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_90;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_90" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" * (cast_expression "(byte *****)(puVar20 + -0x1c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" * (cast_expression "(undefined1 **)(puVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77bf0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77bf0" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a8cd0();" (call_expression "FUN_000a8cd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar16 = local_ec;" (assignment_expression "iVar16 = local_ec" identifier = identifier) ;) (expression_statement "piVar4 = *(int **)(*(int *)local_e4 + 0xc);" (assignment_expression "piVar4 = *(int **)(*(int *)local_e4 + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)local_e4 + 0xc)" * (cast_expression "(int **)(*(int *)local_e4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)local_e4 + 0xc)" ( (binary_expression "*(int *)local_e4 + 0xc" (pointer_expression "*(int *)local_e4" * (cast_expression "(int *)local_e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }" { (expression_statement "*(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;" (assignment_expression "*(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8" (pointer_expression "*(int *)(puVar20 + -0xc)" * (cast_expression "(int *)(puVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dfa8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar20 + -0x14) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar20 + -0x14)" * (cast_expression "(int *)(puVar20 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x131d93" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x78627;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x78627" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*(int *)(puVar20 + -8) = local_d0;" (assignment_expression "*(int *)(puVar20 + -8) = local_d0" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0xc) = local_d4;" (assignment_expression "*(byte **)(puVar20 + -0xc) = local_d4" (pointer_expression "*(byte **)(puVar20 + -0xc)" * (cast_expression "(byte **)(puVar20 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte ****)(puVar20 + -0x10) = local_b4;" (assignment_expression "*(byte ****)(puVar20 + -0x10) = local_b4" (pointer_expression "*(byte ****)(puVar20 + -0x10)" * (cast_expression "(byte ****)(puVar20 + -0x10)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_cc;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_cc" (pointer_expression "*(byte *****)(puVar20 + -0x14)" * (cast_expression "(byte *****)(puVar20 + -0x14)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x18) = param_1;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = param_1" (pointer_expression "*(byte *****)(puVar20 + -0x18)" * (cast_expression "(byte *****)(puVar20 + -0x18)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" * (cast_expression "(byte *****)(puVar20 + -0x1c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x20) = local_ec;" (assignment_expression "*(int *)(puVar20 + -0x20) = local_ec" (pointer_expression "*(int *)(puVar20 + -0x20)" * (cast_expression "(int *)(puVar20 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar20 + -0x24) = piVar4;" (assignment_expression "*(int **)(puVar20 + -0x24) = piVar4" (pointer_expression "*(int **)(puVar20 + -0x24)" * (cast_expression "(int **)(puVar20 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar6 = *(code **)(iVar5 + 0x104);" (assignment_expression "pcVar6 = *(code **)(iVar5 + 0x104)" identifier = (pointer_expression "*(code **)(iVar5 + 0x104)" * (cast_expression "(code **)(iVar5 + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x104)" ( (binary_expression "iVar5 + 0x104" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x28) = 0x77c37;" (assignment_expression "*(undefined4 *)(puVar20 + -0x28) = 0x77c37" (pointer_expression "*(undefined4 *)(puVar20 + -0x28)" * (cast_expression "(undefined4 *)(puVar20 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x28)" ( (binary_expression "puVar20 + -0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pppbVar7 = local_e8;" (assignment_expression "pppbVar7 = local_e8" identifier = identifier) ;) (expression_statement "puVar19 = puVar20 + -4;" (assignment_expression "puVar19 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) (if_statement "if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }" if (parenthesized_expression "((byte ****)local_e8 != (byte ****)0x0)" ( (binary_expression "(byte ****)local_e8 != (byte ****)0x0" (cast_expression "(byte ****)local_e8" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }" { (expression_statement "iVar16 = *(int *)(iVar16 + 0x158);" (assignment_expression "iVar16 = *(int *)(iVar16 + 0x158)" identifier = (pointer_expression "*(int *)(iVar16 + 0x158)" * (cast_expression "(int *)(iVar16 + 0x158)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x158)" ( (binary_expression "iVar16 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "local_bc = (byte ****)&local_2c;" (assignment_expression "local_bc = (byte ****)&local_2c" identifier = (cast_expression "(byte ****)&local_2c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_2c" & identifier))) ;) (expression_statement "*(byte ****)(puVar20 + -0x14) = local_e8;" (assignment_expression "*(byte ****)(puVar20 + -0x14) = local_e8" (pointer_expression "*(byte ****)(puVar20 + -0x14)" * (cast_expression "(byte ****)(puVar20 + -0x14)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "local_34 = local_bc;" (assignment_expression "local_34 = local_bc" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c74;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c74" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sVar10 = strlen(*(char **)(puVar20 + -0x14));" (assignment_expression "sVar10 = strlen(*(char **)(puVar20 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar20 + -0x14))" identifier (argument_list "(*(char **)(puVar20 + -0x14))" ( (pointer_expression "*(char **)(puVar20 + -0x14)" * (cast_expression "(char **)(puVar20 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "ppppbVar3 = local_c4;" (assignment_expression "ppppbVar3 = local_c4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" * (cast_expression "(undefined4 *)(puVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);" (assignment_expression "*(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10)" (pointer_expression "*(byte **)(puVar20 + -0xc)" * (cast_expression "(byte **)(puVar20 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (cast_expression "(byte *)((int)pppbVar7 + sVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppbVar7 + sVar10)" ( (binary_expression "(int)pppbVar7 + sVar10" (cast_expression "(int)pppbVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*(byte ****)(puVar20 + -0x10) = pppbVar7;" (assignment_expression "*(byte ****)(puVar20 + -0x10) = pppbVar7" (pointer_expression "*(byte ****)(puVar20 + -0x10)" * (cast_expression "(byte ****)(puVar20 + -0x10)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0x14)" * (cast_expression "(byte *****)(puVar20 + -0x14)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c89;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c89" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = ppppbVar3;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = ppppbVar3" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = iVar16 + 0x44;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar16 + 0x44" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar16 + 0x44" identifier + number_literal)) ;) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_ac;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_ac" (pointer_expression "*(byte ******)(puVar20 + -0x14)" * (cast_expression "(byte ******)(puVar20 + -0x14)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_ac" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c9d;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c9d" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" * (cast_expression "(undefined4 *)(puVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aaaa0();" (call_expression "FUN_000aaaa0()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppppbVar3 = local_ac;" (assignment_expression "ppppbVar3 = local_ac" identifier = identifier) ;) (if_statement "if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }" if (parenthesized_expression "(local_34 != local_bc)" ( (binary_expression "local_34 != local_bc" identifier != identifier) )) (compound_statement "{\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }" { (expression_statement "*(byte *****)(puVar20 + -0x18) = local_34;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = local_34" (pointer_expression "*(byte *****)(puVar20 + -0x18)" * (cast_expression "(byte *****)(puVar20 + -0x18)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 0x77cc0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pppppbVar23 = *(byte ******)(local_ec + 0x158);" (assignment_expression "pppppbVar23 = *(byte ******)(local_ec + 0x158)" identifier = (pointer_expression "*(byte ******)(local_ec + 0x158)" * (cast_expression "(byte ******)(local_ec + 0x158)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(local_ec + 0x158)" ( (binary_expression "local_ec + 0x158" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = puVar20 + -8;" (assignment_expression "puVar19 = puVar20 + -8" identifier = (binary_expression "puVar20 + -8" identifier + number_literal)) ;) (if_statement "if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }" if (parenthesized_expression "((byte *****)ppppbVar3 != pppppbVar23 + 0x12)" ( (binary_expression "(byte *****)ppppbVar3 != pppppbVar23 + 0x12" (cast_expression "(byte *****)ppppbVar3" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (binary_expression "pppppbVar23 + 0x12" identifier + number_literal)) )) (compound_statement "{\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }" { (expression_statement "local_30 = (byte ***)param_1;" (assignment_expression "local_30 = (byte ***)param_1" identifier = (cast_expression "(byte ***)param_1" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" identifier = identifier) ;) (expression_statement "pppppbVar8 = (byte *****)pppppbVar23[6];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar23[6]" identifier = (cast_expression "(byte *****)pppppbVar23[6]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar23[6]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar14 = pppppbVar23 + 5;" (assignment_expression "pppppbVar14 = pppppbVar23 + 5" identifier = (binary_expression "pppppbVar23 + 5" identifier + number_literal)) ;) (if_statement "if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" if (parenthesized_expression "((byte *****)pppppbVar23[6] == (byte *****)0x0)" ( (binary_expression "(byte *****)pppppbVar23[6] == (byte *****)0x0" (cast_expression "(byte *****)pppppbVar23[6]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar23[6]" identifier [ number_literal ])) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }" { (labeled_statement "LAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;" statement_identifier : (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_88;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_88" (pointer_expression "*(byte ******)(puVar20 + -0x18)" * (cast_expression "(byte ******)(puVar20 + -0x18)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_88" & identifier)) ;)) (expression_statement "local_88 = local_c4;" (assignment_expression "local_88 = local_c4" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 0x781b4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 0x781b4" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" * (cast_expression "(undefined4 *)(puVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00068840();" (call_expression "FUN_00068840()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppppbVar15 = (byte *****)local_a8;" (assignment_expression "pppppbVar15 = (byte *****)local_a8" identifier = (cast_expression "(byte *****)local_a8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) }) (else_clause "else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" else (compound_statement "{\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" { (do_statement "do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);" do (compound_statement "{\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  }" { (while_statement "while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }" while (parenthesized_expression "((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))))" ( (parenthesized_expression "(pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))" ( (comma_expression "pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (assignment_expression "pppppbVar15 = pppppbVar8" identifier = identifier) , (binary_expression "pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (binary_expression "pppppbVar15[4] < local_c0" (subscript_expression "pppppbVar15[4]" identifier [ number_literal ]) < identifier) || (parenthesized_expression "((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" ( (parenthesized_expression "(local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))" ( (binary_expression "local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)" (binary_expression "local_c0 == pppppbVar15[4]" identifier == (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) && (parenthesized_expression "(pppppbVar15[5] < param_1)" ( (binary_expression "pppppbVar15[5] < param_1" (subscript_expression "pppppbVar15[5]" identifier [ number_literal ]) < identifier) ))) )) )))) )) )) (compound_statement "{\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }" { (expression_statement "pppppbVar1 = pppppbVar15 + 3;" (assignment_expression "pppppbVar1 = pppppbVar15 + 3" identifier = (binary_expression "pppppbVar15 + 3" identifier + number_literal)) ;) (expression_statement "pppppbVar8 = (byte *****)*pppppbVar1;" (assignment_expression "pppppbVar8 = (byte *****)*pppppbVar1" identifier = (cast_expression "(byte *****)*pppppbVar1" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppbVar1" * identifier))) ;) (expression_statement "pppppbVar15 = pppppbVar14;" (assignment_expression "pppppbVar15 = pppppbVar14" identifier = identifier) ;) (if_statement "if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;" if (parenthesized_expression "((byte *****)*pppppbVar1 == (byte *****)0x0)" ( (binary_expression "(byte *****)*pppppbVar1 == (byte *****)0x0" (cast_expression "(byte *****)*pppppbVar1" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*pppppbVar1" * identifier)) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_00077d27;" goto statement_identifier ;)) })) (expression_statement "pppppbVar8 = (byte *****)pppppbVar15[2];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar15[2]" identifier = (cast_expression "(byte *****)pppppbVar15[2]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar15[2]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar14 = pppppbVar15;" (assignment_expression "pppppbVar14 = pppppbVar15" identifier = identifier) ;) }) while (parenthesized_expression "((byte *****)pppppbVar15[2] != (byte *****)0x0)" ( (binary_expression "(byte *****)pppppbVar15[2] != (byte *****)0x0" (cast_expression "(byte *****)pppppbVar15[2]" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "pppppbVar15[2]" identifier [ number_literal ])) != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) ;) (labeled_statement "LAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;" statement_identifier : (expression_statement "local_bc = (byte ****)pppppbVar23;" (assignment_expression "local_bc = (byte ****)pppppbVar23" identifier = (cast_expression "(byte ****)pppppbVar23" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;)) (if_statement "if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;" if (parenthesized_expression "(((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))" ( (binary_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" (parenthesized_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4]))" ( (binary_expression "(pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])" (parenthesized_expression "(pppppbVar15 == pppppbVar23 + 5)" ( (binary_expression "pppppbVar15 == pppppbVar23 + 5" identifier == (binary_expression "pppppbVar23 + 5" identifier + number_literal)) )) || (parenthesized_expression "(local_c0 < pppppbVar15[4])" ( (binary_expression "local_c0 < pppppbVar15[4]" identifier < (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" ( (parenthesized_expression "(local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))" ( (binary_expression "local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])" (binary_expression "local_c0 == pppppbVar15[4]" identifier == (subscript_expression "pppppbVar15[4]" identifier [ number_literal ])) && (parenthesized_expression "(param_1 < pppppbVar15[5])" ( (binary_expression "param_1 < pppppbVar15[5]" identifier < (subscript_expression "pppppbVar15[5]" identifier [ number_literal ])) ))) )) ))) )) (goto_statement "goto LAB_00078190;" goto statement_identifier ;)) }))) (expression_statement "puVar19 = puVar20 + -8;" (assignment_expression "puVar19 = puVar20 + -8" identifier = (binary_expression "puVar20 + -8" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + -8;" (assignment_expression "puVar20 = puVar20 + -8" identifier = (binary_expression "puVar20 + -8" identifier + number_literal)) ;) (for_statement "for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }" for ( (assignment_expression "ppppbVar3 = (byte ****)ppppbVar3[0xc]" identifier = (cast_expression "(byte ****)ppppbVar3[0xc]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar3[0xc]" identifier [ number_literal ]))) ; (binary_expression "ppppbVar3 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ; (assignment_expression "ppppbVar3 = (byte ****)*ppppbVar3" identifier = (cast_expression "(byte ****)*ppppbVar3" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*ppppbVar3" * identifier))) ) (compound_statement "{\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }" { (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_94;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_94" (pointer_expression "*(byte ******)(puVar20 + -0x14)" * (cast_expression "(byte ******)(puVar20 + -0x14)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_94" & identifier)) ;) (expression_statement "*(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1" (pointer_expression "*(byte *****)(puVar20 + -0x18)" * (cast_expression "(byte *****)(puVar20 + -0x18)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (binary_expression "ppppbVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;" (assignment_expression "*(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6" (pointer_expression "*(byte ******)(puVar20 + -0x1c)" * (cast_expression "(byte ******)(puVar20 + -0x1c)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = (binary_expression "pppppbVar15 + 6" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" * (cast_expression "(undefined1 **)(puVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77d7e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77d7e" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_94 = (byte ****)(pppppbVar15 + 6);" (assignment_expression "local_94 = (byte ****)(pppppbVar15 + 6)" identifier = (cast_expression "(byte ****)(pppppbVar15 + 6)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(pppppbVar15 + 6)" ( (binary_expression "pppppbVar15 + 6" identifier + number_literal) )))) ;) (expression_statement "FUN_000a8cd0();" (call_expression "FUN_000a8cd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar19 = puVar20 + -4;" (assignment_expression "puVar19 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) })) })) })) })) })) }) (else_clause "else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" else (compound_statement "{\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" { (if_statement "if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }" if (parenthesized_expression "(ppppbVar3 < local_c0[0x2c])" ( (binary_expression "ppppbVar3 < local_c0[0x2c]" identifier < (subscript_expression "local_c0[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }" { (expression_statement "local_74 = (byte ****)0x0;" (assignment_expression "local_74 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (labeled_statement "LAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" statement_identifier : (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11e2b4" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11cf41" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar20 + -0x14) = &UNK_000780f8;" (assignment_expression "*(undefined **)(puVar20 + -0x14) = &UNK_000780f8" (pointer_expression "*(undefined **)(puVar20 + -0x14)" * (cast_expression "(undefined **)(puVar20 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_000780f8" & identifier)) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];" (assignment_expression "uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c]" identifier = (binary_expression "(int)ppppbVar3 - (int)local_c0[0x2c]" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_c0[0x2c]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_c0[0x2c]" identifier [ number_literal ])))) ;) (expression_statement "local_b4 = local_c0[0x30];" (assignment_expression "local_b4 = local_c0[0x30]" identifier = (subscript_expression "local_c0[0x30]" identifier [ number_literal ])) ;) (if_statement "if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }" if (parenthesized_expression "((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18)" ( (binary_expression "(uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18" (call_expression "(uint)((int)local_b4 - (int)local_c0[0x2f] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_b4 - (int)local_c0[0x2f] >> 2)" ( (binary_expression "(int)local_b4 - (int)local_c0[0x2f] >> 2" (binary_expression "(int)local_b4 - (int)local_c0[0x2f]" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_c0[0x2f]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_c0[0x2f]" identifier [ number_literal ]))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11dcdc" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11dcdc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11d1b8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78609;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78609" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_74 = (byte ****)local_c0[0x2f][uVar18];" (assignment_expression "local_74 = (byte ****)local_c0[0x2f][uVar18]" identifier = (cast_expression "(byte ****)local_c0[0x2f][uVar18]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_c0[0x2f][uVar18]" (subscript_expression "local_c0[0x2f]" identifier [ number_literal ]) [ identifier ]))) ;) (if_statement "if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;" if (parenthesized_expression "((byte *****)local_74 == (byte *****)0x0)" ( (binary_expression "(byte *****)local_74 == (byte *****)0x0" (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_000780d7;" goto statement_identifier ;)) (if_statement "if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }" if (parenthesized_expression "((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)local_74 + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_74 + 0x2a) & 0x10)" ( (binary_expression "*(byte *)((int)local_74 + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_74 + 0x2a)" * (cast_expression "(byte *)((int)local_74 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_74 + 0x2a)" ( (binary_expression "(int)local_74 + 0x2a" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }" { (expression_statement "*(byte *****)(puVar20 + -0xc) = local_74;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_74" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x780c5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x780c5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_74 = (byte ****)FUN_001e6f30();" (assignment_expression "local_74 = (byte ****)FUN_001e6f30()" identifier = (cast_expression "(byte ****)FUN_001e6f30()" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_001e6f30()" identifier (argument_list "()" ( ))))) ;) })) (if_statement "if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" if (parenthesized_expression "((*(byte *)((int)local_74 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)local_74 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_74 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)local_74 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_74 + 0x2a)" * (cast_expression "(byte *)((int)local_74 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_74 + 0x2a)" ( (binary_expression "(int)local_74 + 0x2a" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }" { (expression_statement "local_10c = (byte ***)((byte *****)local_74)[0xc];" (assignment_expression "local_10c = (byte ***)((byte *****)local_74)[0xc]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[0xc]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[0xc]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (expression_statement "local_108 = (byte ***)((byte *****)local_74)[0xd];" (assignment_expression "local_108 = (byte ***)((byte *****)local_74)[0xd]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[0xd]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[0xd]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_10c);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_10c)" identifier = (cast_expression "(byte *)((int)local_bc + (int)local_10c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + (int)local_10c)" ( (binary_expression "(int)local_bc + (int)local_10c" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_cc = ((byte *****)local_74)[2];" (assignment_expression "local_cc = ((byte *****)local_74)[2]" identifier = (subscript_expression "((byte *****)local_74)[2]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ])) ;) (expression_statement "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;" (assignment_expression "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" identifier = (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c)" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_10c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_10c)" identifier (argument_list "((uint)local_bc,(uint)local_10c)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_10c" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + identifier)) ;) (if_statement "if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" if (parenthesized_expression "(((uint)((byte *****)local_cc)[0xb] & 1) == 0)" ( (binary_expression "((uint)((byte *****)local_cc)[0xb] & 1) == 0" (parenthesized_expression "((uint)((byte *****)local_cc)[0xb] & 1)" ( (binary_expression "(uint)((byte *****)local_cc)[0xb] & 1" (subscript_expression "(uint)((byte *****)local_cc)[0xb]" (call_expression "(uint)((byte *****)local_cc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte *****)local_cc)" ( (cast_expression "(byte *****)local_cc" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) ))) [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }" { (expression_statement "local_b4 = (byte ***)((byte *****)local_74)[3];" (assignment_expression "local_b4 = (byte ***)((byte *****)local_74)[3]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[3]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[3]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (expression_statement "bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;" (assignment_expression "bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1" identifier = (binary_expression "*(byte *)((int)local_74 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)local_74 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_74 + 0x2b)" * (cast_expression "(byte *)((int)local_74 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_74 + 0x2b)" ( (binary_expression "(int)local_74 + 0x2b" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal)) ;) (expression_statement "bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;" (assignment_expression "bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2" identifier = (binary_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf) < 2" (parenthesized_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf)" ( (binary_expression "*(byte *)((byte *****)local_74 + 10) & 0xf" (pointer_expression "*(byte *)((byte *****)local_74 + 10)" * (cast_expression "(byte *)((byte *****)local_74 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *****)local_74 + 10)" ( (binary_expression "(byte *****)local_74 + 10" (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) & number_literal) )) < number_literal)) ;) (expression_statement "bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;" (assignment_expression "bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2" identifier = (binary_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf) == 2" (parenthesized_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf)" ( (binary_expression "*(byte *)((byte *****)local_74 + 10) & 0xf" (pointer_expression "*(byte *)((byte *****)local_74 + 10)" * (cast_expression "(byte *)((byte *****)local_74 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *****)local_74 + 10)" ( (binary_expression "(byte *****)local_74 + 10" (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }" { (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = local_da == '\0';" (assignment_expression "bVar26 = local_da == '\0'" identifier = (binary_expression "local_da == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }" { (if_statement "if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }" { (expression_statement "local_c4 = (byte ****)local_c0[0x54];" (assignment_expression "local_c4 = (byte ****)local_c0[0x54]" identifier = (cast_expression "(byte ****)local_c0[0x54]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "local_c0[0x54]" identifier [ number_literal ]))) ;) (expression_statement "bVar24 = ((uint)local_c4 & 3) == 0;" (assignment_expression "bVar24 = ((uint)local_c4 & 3) == 0" identifier = (binary_expression "((uint)local_c4 & 3) == 0" (parenthesized_expression "((uint)local_c4 & 3)" ( (binary_expression "(uint)local_c4 & 3" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (expression_statement "bVar26 = ((uint)local_c4 & 3) == 1;" (assignment_expression "bVar26 = ((uint)local_c4 & 3) == 1" identifier = (binary_expression "((uint)local_c4 & 3) == 1" (parenthesized_expression "((uint)local_c4 & 3)" ( (binary_expression "(uint)local_c4 & 3" (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal)) ;) (if_statement "if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;" if (parenthesized_expression "((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))" ( (binary_expression "(bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)))" (parenthesized_expression "(bVar26)" ( identifier )) || (parenthesized_expression "((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)))" ( (parenthesized_expression "(bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))" ( (comma_expression "bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" (assignment_expression "bVar26 = local_d8 == 0x17" identifier = (binary_expression "local_d8 == 0x17" identifier == number_literal)) , (binary_expression "local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" (binary_expression "local_d8 < 0x18" identifier < number_literal) && (parenthesized_expression "(bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" ( (comma_expression "bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24" (assignment_expression "bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0" identifier = (binary_expression "(0x843f84U >> (local_d8 & 0x1f) & 1) != 0" (parenthesized_expression "(0x843f84U >> (local_d8 & 0x1f) & 1)" ( (binary_expression "0x843f84U >> (local_d8 & 0x1f) & 1" (binary_expression "0x843f84U >> (local_d8 & 0x1f)" number_literal >> (parenthesized_expression "(local_d8 & 0x1f)" ( (binary_expression "local_d8 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal)) , identifier) )))) )) ))) )) (goto_statement "goto LAB_00077ec0;" goto statement_identifier ;)) })) (expression_statement "local_c4 = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_c4 = *(byte *****)(local_ec + 0x15c)" identifier = (pointer_expression "*(byte *****)(local_ec + 0x15c)" * (cast_expression "(byte *****)(local_ec + 0x15c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(local_ec + 0x15c)" ( (binary_expression "local_ec + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" * (cast_expression "(undefined4 *)(puVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_98;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_98" (pointer_expression "*(byte ******)(puVar20 + -0x14)" * (cast_expression "(byte ******)(puVar20 + -0x14)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_98" & identifier)) ;) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_84;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_84" (pointer_expression "*(byte ******)(puVar20 + -0x18)" * (cast_expression "(byte ******)(puVar20 + -0x18)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = (pointer_expression "&local_84" & identifier)) ;) (expression_statement "local_98 = (byte ****)((byte *****)local_c4 + 0xd);" (assignment_expression "local_98 = (byte ****)((byte *****)local_c4 + 0xd)" identifier = (cast_expression "(byte ****)((byte *****)local_c4 + 0xd)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((byte *****)local_c4 + 0xd)" ( (binary_expression "(byte *****)local_c4 + 0xd" (cast_expression "(byte *****)local_c4" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) )))) ;) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_98;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_98" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" * (cast_expression "(byte *****)(puVar20 + -0x1c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" * (cast_expression "(undefined1 **)(puVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x78301;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x78301" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" * (cast_expression "(undefined4 *)(puVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_84 = local_cc;" (assignment_expression "local_84 = local_cc" identifier = identifier) ;) (expression_statement "local_80 = local_b4;" (assignment_expression "local_80 = local_b4" identifier = identifier) ;) (expression_statement "FUN_000a8d90();" (call_expression "FUN_000a8d90()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;" (assignment_expression "bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20" identifier = (binary_expression "(undefined1 *)0xffffffe3 < puVar20 + -0x20" (cast_expression "(undefined1 *)0xffffffe3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar20 + -0x20" identifier + number_literal))) ;) (expression_statement "bVar26 = puVar20 == (undefined1 *)0x4;" (assignment_expression "bVar26 = puVar20 == (undefined1 *)0x4" identifier = (binary_expression "puVar20 == (undefined1 *)0x4" identifier == (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" identifier = (binary_expression "puVar20 + -4" identifier + number_literal)) ;) })) })) }) (else_clause "else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" else (compound_statement "{\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" { (expression_statement "local_b4 = (byte ***)0x0;" (assignment_expression "local_b4 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (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 "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" else (compound_statement "{\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" { (expression_statement "local_10c = (byte ***)((byte *****)local_74)[0xc];" (assignment_expression "local_10c = (byte ***)((byte *****)local_74)[0xc]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[0xc]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[0xc]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (expression_statement "local_b4 = (byte ***)0x0;" (assignment_expression "local_b4 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "local_108 = (byte ***)((byte *****)local_74)[0xd];" (assignment_expression "local_108 = (byte ***)((byte *****)local_74)[0xd]" identifier = (cast_expression "(byte ***)((byte *****)local_74)[0xd]" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "((byte *****)local_74)[0xd]" (parenthesized_expression "((byte *****)local_74)" ( (cast_expression "(byte *****)local_74" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]))) ;) (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 "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_10c);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_10c)" identifier = (cast_expression "(byte *)((int)local_bc + (int)local_10c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + (int)local_10c)" ( (binary_expression "(int)local_bc + (int)local_10c" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_10c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;" (assignment_expression "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" identifier = (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c)" (cast_expression "(int)local_108" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_10c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_bc,(uint)local_10c)" identifier (argument_list "((uint)local_bc,(uint)local_10c)" ( (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)local_10c" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + identifier)) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) }))) (labeled_statement "LAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;" statement_identifier : (expression_statement "ppppbVar3 = (byte ****)*local_74;" (assignment_expression "ppppbVar3 = (byte ****)*local_74" identifier = (cast_expression "(byte ****)*local_74" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*local_74" * identifier))) ;)) (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf31);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf31)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf31)" ( (binary_expression "local_e0 + -0x11cf31" identifier + number_literal) )))) ;) (expression_statement "ppppbVar22 = ppppbVar3;" (assignment_expression "ppppbVar22 = ppppbVar3" identifier = identifier) ;) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);" do (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *(byte *)ppppbVar22;" (assignment_expression "bVar24 = *pbVar21 < *(byte *)ppppbVar22" identifier = (binary_expression "*pbVar21 < *(byte *)ppppbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*(byte *)ppppbVar22" * (cast_expression "(byte *)ppppbVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar26 = *pbVar21 == *(byte *)ppppbVar22;" (assignment_expression "bVar26 = *pbVar21 == *(byte *)ppppbVar22" identifier = (binary_expression "*pbVar21 == *(byte *)ppppbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*(byte *)ppppbVar22" * (cast_expression "(byte *)ppppbVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2" (cast_expression "(int)ppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n          ppppbVar3 = ppppbVar3 + 2;\n        }" { (expression_statement "ppppbVar3 = ppppbVar3 + 2;" (assignment_expression "ppppbVar3 = ppppbVar3 + 2" identifier = (binary_expression "ppppbVar3 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" else (compound_statement "{\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" { (expression_statement "iVar16 = 7;" (assignment_expression "iVar16 = 7" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf28);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf28)" identifier = (cast_expression "(byte *)(local_e0 + -0x11cf28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_e0 + -0x11cf28)" ( (binary_expression "local_e0 + -0x11cf28" identifier + number_literal) )))) ;) (expression_statement "ppppbVar22 = ppppbVar3;" (assignment_expression "ppppbVar22 = ppppbVar3" identifier = identifier) ;) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);" do (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          }" { (if_statement "if (iVar16 == 0) break;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *(byte *)ppppbVar22;" (assignment_expression "bVar25 = *pbVar21 < *(byte *)ppppbVar22" identifier = (binary_expression "*pbVar21 < *(byte *)ppppbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*(byte *)ppppbVar22" * (cast_expression "(byte *)ppppbVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "bVar24 = *pbVar21 == *(byte *)ppppbVar22;" (assignment_expression "bVar24 = *pbVar21 == *(byte *)ppppbVar22" identifier = (binary_expression "*pbVar21 == *(byte *)ppppbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*(byte *)ppppbVar22" * (cast_expression "(byte *)ppppbVar22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" ( (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2" (cast_expression "(int)ppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);" (assignment_expression "ppppbVar3 = (byte ****)((int)ppppbVar3 + 7)" identifier = (cast_expression "(byte ****)((int)ppppbVar3 + 7)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar3 + 7)" ( (binary_expression "(int)ppppbVar3 + 7" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }" if (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" ( (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n            ppppbVar3 = (byte ****)local_e8;\n          }" { (expression_statement "ppppbVar3 = (byte ****)local_e8;" (assignment_expression "ppppbVar3 = (byte ****)local_e8" identifier = (cast_expression "(byte ****)local_e8" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) })) }))) (expression_statement "local_e8 = (byte ***)ppppbVar3;" (assignment_expression "local_e8 = (byte ***)ppppbVar3" identifier = (cast_expression "(byte ***)ppppbVar3" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }" if (parenthesized_expression "(local_d9 != '\0')" ( (binary_expression "local_d9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }" { (if_statement "if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }" { (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) }) (else_clause "else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" else (compound_statement "{\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" { (expression_statement "local_34 = local_cc;" (assignment_expression "local_34 = local_cc" identifier = identifier) ;) (expression_statement "local_30 = local_b4;" (assignment_expression "local_30 = local_b4" identifier = identifier) ;) }))) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" identifier = (cast_expression "(byte ****)&local_34" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_34" & identifier))) ;) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77f29;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77f29" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar2 = *(undefined4 **)(local_f8 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f8 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_f8 + 4)" * (cast_expression "(undefined4 **)(local_f8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f8 + 4)" ( (binary_expression "local_f8 + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f8 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_f8 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_f8 + 8)" * (cast_expression "(undefined4 **)(local_f8 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f8 + 8)" ( (binary_expression "local_f8 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }" { (expression_statement "*(byte ******)(puVar20 + -8) = &local_74;" (assignment_expression "*(byte ******)(puVar20 + -8) = &local_74" (pointer_expression "*(byte ******)(puVar20 + -8)" * (cast_expression "(byte ******)(puVar20 + -8)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (pointer_expression "&local_74" & identifier)) ;) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x781fb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x781fb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000a82c0();" (call_expression "FUN_000a82c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" else (compound_statement "{\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" { (expression_statement "*puVar2 = local_74;" (assignment_expression "*puVar2 = local_74" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(local_f8 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_f8 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_f8 + 4)" * (cast_expression "(undefined4 **)(local_f8 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f8 + 4)" ( (binary_expression "local_f8 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" * (cast_expression "(byte *****)(puVar20 + -0xc)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_100;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_100" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_34 = (byte ****)local_10c;" (assignment_expression "local_34 = (byte ****)local_10c" identifier = (cast_expression "(byte ****)local_10c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "local_30 = local_108;" (assignment_expression "local_30 = local_108" identifier = identifier) ;) (expression_statement "local_2c = local_bc;" (assignment_expression "local_2c = local_bc" identifier = identifier) ;) (expression_statement "local_28 = local_b8;" (assignment_expression "local_28 = local_b8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77f82;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77f82" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000ab1b0();" (call_expression "FUN_000ab1b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppppbVar23 = (byte *****)*param_2;" (assignment_expression "pppppbVar23 = (byte *****)*param_2" identifier = (cast_expression "(byte *****)*param_2" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*param_2" * identifier))) ;) (if_statement "if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }" if (parenthesized_expression "(param_2[1] != 0)" ( (binary_expression "param_2[1] != 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }" { (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c" (pointer_expression "*(int *)(puVar20 + -8)" * (cast_expression "(int *)(puVar20 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11de3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" * (cast_expression "(undefined4 *)(puVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11cc44" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785e8;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785e8" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" identifier = (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) ;) (expression_statement "puVar2 = *(undefined4 **)(local_f4 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f4 + 4)" identifier = (pointer_expression "*(undefined4 **)(local_f4 + 4)" * (cast_expression "(undefined4 **)(local_f4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 4)" ( (binary_expression "local_f4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_34 = (byte ****)pppppbVar23;" (assignment_expression "local_34 = (byte ****)pppppbVar23" identifier = (cast_expression "(byte ****)pppppbVar23" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (if_statement "if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" if (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f4 + 8))" ( (binary_expression "puVar2 == *(undefined4 **)(local_f4 + 8)" identifier == (pointer_expression "*(undefined4 **)(local_f4 + 8)" * (cast_expression "(undefined4 **)(local_f4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 8)" ( (binary_expression "local_f4 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }" { (expression_statement "*(byte *****)(puVar20 + -8) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -8) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -8)" * (cast_expression "(byte *****)(puVar20 + -8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" * (cast_expression "(undefined4 **)(puVar20 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_f4;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f4" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x781dd;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x781dd" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000aa950();" (call_expression "FUN_000aa950()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" else (compound_statement "{\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" { (expression_statement "*puVar2 = pppppbVar23;" (assignment_expression "*puVar2 = pppppbVar23" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 **)(local_f4 + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_f4 + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_f4 + 4)" * (cast_expression "(undefined4 **)(local_f4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_f4 + 4)" ( (binary_expression "local_f4 + 4" identifier + number_literal) )))) = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) }))) (expression_statement "local_6c = (byte ****)0x0;" (assignment_expression "local_6c = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "*(byte ******)(puVar20 + -0xc) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0xc) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0xc)" * (cast_expression "(byte ******)(puVar20 + -0xc)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "*(int *)(puVar20 + -0x10) = local_104;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_104" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77fd9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77fd9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" * (cast_expression "(undefined4 *)(puVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000ab360();" (call_expression "FUN_000ab360()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (if_statement "if (bVar17 != 0) goto LAB_00077afb;" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00077afb;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);" statement_identifier : (expression_statement "local_b0 = (int *)((int)local_b0 + 1);" (assignment_expression "local_b0 = (int *)((int)local_b0 + 1)" identifier = (cast_expression "(int *)((int)local_b0 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b0 + 1)" ( (binary_expression "(int)local_b0 + 1" (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "param_2 = param_2 + 6;" (assignment_expression "param_2 = param_2 + 6" identifier = (binary_expression "param_2 + 6" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" identifier = identifier) ;) }) while (parenthesized_expression "(param_3 != local_b0)" ( (binary_expression "param_3 != local_b0" identifier != identifier) )) ;) }))) (if_statement "if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }" if (parenthesized_expression "(local_4c[0] != local_114)" ( (binary_expression "local_4c[0] != local_114" (subscript_expression "local_4c[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }" { (expression_statement "*(byte **)(puVar19 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0x10)" * (cast_expression "(byte **)(puVar19 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (subscript_expression "local_4c[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78222;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78222" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }" if (parenthesized_expression "((local_64 != 0) && (local_60 != 0))" ( (binary_expression "(local_64 != 0) && (local_60 != 0)" (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }" { (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c" (pointer_expression "*(int *)(puVar19 + -0x10)" * (cast_expression "(int *)(puVar19 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = (binary_expression "local_e0 + -0x11ca0c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7824a;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7824a" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x10) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -0x10) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -0x10)" * (cast_expression "(undefined4 *)(puVar19 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x10)" ( (binary_expression "puVar19 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = local_54;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = local_54" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" * (cast_expression "(undefined4 *)(puVar19 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x14)" ( (binary_expression "puVar19 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x18) = local_58;" (assignment_expression "*(undefined4 *)(puVar19 + -0x18) = local_58" (pointer_expression "*(undefined4 *)(puVar19 + -0x18)" * (cast_expression "(undefined4 *)(puVar19 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x18)" ( (binary_expression "puVar19 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x1c) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0x1c) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + -0x1c)" * (cast_expression "(undefined4 *)(puVar19 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x1c)" ( (binary_expression "puVar19 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar19 + -0x20) = local_60;" (assignment_expression "*(int *)(puVar19 + -0x20) = local_60" (pointer_expression "*(int *)(puVar19 + -0x20)" * (cast_expression "(int *)(puVar19 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x20)" ( (binary_expression "puVar19 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar19 + -0x24) = 0x7825e;" (assignment_expression "*(undefined4 *)(puVar19 + -0x24) = 0x7825e" (pointer_expression "*(undefined4 *)(puVar19 + -0x24)" * (cast_expression "(undefined4 *)(puVar19 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x24)" ( (binary_expression "puVar19 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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) )))) = 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 *)) ) (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 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 = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }) (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 * (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 *)) ) 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 * (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 * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 *)) ) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression (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 * (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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - LIT) ))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! 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 * (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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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)) ;) (goto_statement goto statement_identifier ;) })) })) })) })) })) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (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 *)) ) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (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 ( (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (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 * (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (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 * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (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 * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (call_expression IDENT (argument_list ( ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (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 ( (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression 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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 ( ))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (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 * (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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) )) (compound_statement { (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression 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 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (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 * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) 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 (subscript_expression IDENT [ LIT ]) < IDENT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) || (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) && (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (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 * (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 * (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 * (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 * (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 * (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 * (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 * (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (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) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 *)) ) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (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 * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) 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 (subscript_expression IDENT [ LIT ]) < IDENT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) ))) )) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) || (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (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)) ;) (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (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 * (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 * (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 * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) })) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression 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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ IDENT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (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 * (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) ))) [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ 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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) + LIT) )))) & LIT) )) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) + LIT) )))) & LIT) )) == 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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT == LIT)) , (binary_expression (binary_expression IDENT < LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) != LIT)) , IDENT) )))) )) ))) )) (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 * (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 * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (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 * (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 * (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 * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression 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 IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) 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 ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)\n\n{\n  byte *****pppppbVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  int *piVar4;\n  int iVar5;\n  code *pcVar6;\n  byte ***pppbVar7;\n  byte *****pppppbVar8;\n  char cVar9;\n  size_t sVar10;\n  byte ****ppppbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte *****extraout_ECX;\n  undefined4 extraout_ECX_00;\n  byte *****pppppbVar14;\n  byte *****pppppbVar15;\n  int iVar16;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  int unaff_EDI;\n  byte ****ppppbVar22;\n  byte *****pppppbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  undefined1 auStack_11c [8];\n  byte *local_114;\n  byte ****local_110;\n  byte ***local_10c;\n  byte ***local_108;\n  int local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  int local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  byte ***local_e8;\n  byte *local_e4;\n  int local_e0;\n  char local_da;\n  char local_d9;\n  uint local_d8;\n  byte *local_d4;\n  int local_d0;\n  byte ****local_cc;\n  int local_c8;\n  byte ****local_c4;\n  byte ****local_c0;\n  byte ****local_bc;\n  int local_b8;\n  byte ***local_b4;\n  int *local_b0;\n  byte ****local_ac;\n  byte ****local_a8;\n  undefined1 local_a4 [8];\n  byte ****local_9c;\n  byte ****local_98;\n  byte ****local_94;\n  byte ****local_90;\n  byte ****local_8c;\n  byte ****local_88;\n  byte ****local_84;\n  byte ***local_80;\n  byte ****local_7c;\n  uint local_78;\n  byte ****local_74;\n  byte ***local_70;\n  byte ****local_6c;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  byte ****local_34;\n  byte ***local_30;\n  byte ****local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  uVar28 = FUN_000b484e();\n  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);\n  local_ec = (int)uVar28;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = (byte ****)extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }\n  pbVar21 = local_4c[0];\n  iVar16 = *(int *)local_e4;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  piVar4 = local_b0;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }\n  local_da = '\0';\nLAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }\n  if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }\n  if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000776d0(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)" (identifier "FUN_000776d0") (parameter_list "(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)" (( "(") (parameter_declaration "byte ****param_1" (type_identifier "byte") (pointer_declarator "****param_1" (* "*") (pointer_declarator "***param_1" (* "*") (pointer_declarator "**param_1" (* "*") (pointer_declarator "*param_1" (* "*") (identifier "param_1")))))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "byte ****param_4" (type_identifier "byte") (pointer_declarator "****param_4" (* "*") (pointer_declarator "***param_4" (* "*") (pointer_declarator "**param_4" (* "*") (pointer_declarator "*param_4" (* "*") (identifier "param_4")))))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte *****pppppbVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  int *piVar4;\n  int iVar5;\n  code *pcVar6;\n  byte ***pppbVar7;\n  byte *****pppppbVar8;\n  char cVar9;\n  size_t sVar10;\n  byte ****ppppbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  byte *****extraout_ECX;\n  undefined4 extraout_ECX_00;\n  byte *****pppppbVar14;\n  byte *****pppppbVar15;\n  int iVar16;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  byte *pbVar21;\n  int unaff_EDI;\n  byte ****ppppbVar22;\n  byte *****pppppbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  undefined1 auStack_11c [8];\n  byte *local_114;\n  byte ****local_110;\n  byte ***local_10c;\n  byte ***local_108;\n  int local_104;\n  int local_100;\n  int local_fc;\n  int local_f8;\n  int local_f4;\n  undefined1 *local_f0;\n  int local_ec;\n  byte ***local_e8;\n  byte *local_e4;\n  int local_e0;\n  char local_da;\n  char local_d9;\n  uint local_d8;\n  byte *local_d4;\n  int local_d0;\n  byte ****local_cc;\n  int local_c8;\n  byte ****local_c4;\n  byte ****local_c0;\n  byte ****local_bc;\n  int local_b8;\n  byte ***local_b4;\n  int *local_b0;\n  byte ****local_ac;\n  byte ****local_a8;\n  undefined1 local_a4 [8];\n  byte ****local_9c;\n  byte ****local_98;\n  byte ****local_94;\n  byte ****local_90;\n  byte ****local_8c;\n  byte ****local_88;\n  byte ****local_84;\n  byte ***local_80;\n  byte ****local_7c;\n  uint local_78;\n  byte ****local_74;\n  byte ***local_70;\n  byte ****local_6c;\n  byte ***local_68;\n  int local_64;\n  int local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined1 local_50;\n  byte *local_4c [2];\n  byte local_44 [16];\n  byte ****local_34;\n  byte ***local_30;\n  byte ****local_2c;\n  int local_28;\n  \n  bVar27 = 0;\n  uVar28 = FUN_000b484e();\n  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);\n  local_ec = (int)uVar28;\n  local_e0 = unaff_EDI + 0x39c927;\n  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;\n  local_64 = 0;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  local_54 = 0;\n  local_50 = 0;\n  if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }\n  local_c0 = (byte ****)extraout_ECX;\n  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }\n  pbVar21 = local_4c[0];\n  iVar16 = *(int *)local_e4;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }\n  piVar4 = local_b0;\n  if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }\n  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }\n  local_da = '\0';\nLAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }\n  if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }\n  if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }\n  return;\n}" ({ "{") (declaration "byte *****pppppbVar1;" (type_identifier "byte") (pointer_declarator "*****pppppbVar1" (* "*") (pointer_declarator "****pppppbVar1" (* "*") (pointer_declarator "***pppppbVar1" (* "*") (pointer_declarator "**pppppbVar1" (* "*") (pointer_declarator "*pppppbVar1" (* "*") (identifier "pppppbVar1")))))) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte ****ppppbVar3;" (type_identifier "byte") (pointer_declarator "****ppppbVar3" (* "*") (pointer_declarator "***ppppbVar3" (* "*") (pointer_declarator "**ppppbVar3" (* "*") (pointer_declarator "*ppppbVar3" (* "*") (identifier "ppppbVar3"))))) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "byte ***pppbVar7;" (type_identifier "byte") (pointer_declarator "***pppbVar7" (* "*") (pointer_declarator "**pppbVar7" (* "*") (pointer_declarator "*pppbVar7" (* "*") (identifier "pppbVar7")))) (; ";")) (declaration "byte *****pppppbVar8;" (type_identifier "byte") (pointer_declarator "*****pppppbVar8" (* "*") (pointer_declarator "****pppppbVar8" (* "*") (pointer_declarator "***pppppbVar8" (* "*") (pointer_declarator "**pppppbVar8" (* "*") (pointer_declarator "*pppppbVar8" (* "*") (identifier "pppppbVar8")))))) (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "size_t sVar10;" (primitive_type "size_t") (identifier "sVar10") (; ";")) (declaration "byte ****ppppbVar11;" (type_identifier "byte") (pointer_declarator "****ppppbVar11" (* "*") (pointer_declarator "***ppppbVar11" (* "*") (pointer_declarator "**ppppbVar11" (* "*") (pointer_declarator "*ppppbVar11" (* "*") (identifier "ppppbVar11"))))) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *****extraout_ECX;" (type_identifier "byte") (pointer_declarator "*****extraout_ECX" (* "*") (pointer_declarator "****extraout_ECX" (* "*") (pointer_declarator "***extraout_ECX" (* "*") (pointer_declarator "**extraout_ECX" (* "*") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")))))) (; ";")) (declaration "undefined4 extraout_ECX_00;" (type_identifier "undefined4") (identifier "extraout_ECX_00") (; ";")) (declaration "byte *****pppppbVar14;" (type_identifier "byte") (pointer_declarator "*****pppppbVar14" (* "*") (pointer_declarator "****pppppbVar14" (* "*") (pointer_declarator "***pppppbVar14" (* "*") (pointer_declarator "**pppppbVar14" (* "*") (pointer_declarator "*pppppbVar14" (* "*") (identifier "pppppbVar14")))))) (; ";")) (declaration "byte *****pppppbVar15;" (type_identifier "byte") (pointer_declarator "*****pppppbVar15" (* "*") (pointer_declarator "****pppppbVar15" (* "*") (pointer_declarator "***pppppbVar15" (* "*") (pointer_declarator "**pppppbVar15" (* "*") (pointer_declarator "*pppppbVar15" (* "*") (identifier "pppppbVar15")))))) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined4 extraout_ECX_01;" (type_identifier "undefined4") (identifier "extraout_ECX_01") (; ";")) (declaration "undefined4 extraout_ECX_02;" (type_identifier "undefined4") (identifier "extraout_ECX_02") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined1 *puVar19;" (type_identifier "undefined1") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined1 *puVar20;" (type_identifier "undefined1") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "byte ****ppppbVar22;" (type_identifier "byte") (pointer_declarator "****ppppbVar22" (* "*") (pointer_declarator "***ppppbVar22" (* "*") (pointer_declarator "**ppppbVar22" (* "*") (pointer_declarator "*ppppbVar22" (* "*") (identifier "ppppbVar22"))))) (; ";")) (declaration "byte *****pppppbVar23;" (type_identifier "byte") (pointer_declarator "*****pppppbVar23" (* "*") (pointer_declarator "****pppppbVar23" (* "*") (pointer_declarator "***pppppbVar23" (* "*") (pointer_declarator "**pppppbVar23" (* "*") (pointer_declarator "*pppppbVar23" (* "*") (identifier "pppppbVar23")))))) (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "byte bVar27;" (type_identifier "byte") (identifier "bVar27") (; ";")) (declaration "undefined8 uVar28;" (type_identifier "undefined8") (identifier "uVar28") (; ";")) (declaration "undefined1 auStack_11c [8];" (type_identifier "undefined1") (array_declarator "auStack_11c [8]" (identifier "auStack_11c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "byte *local_114;" (type_identifier "byte") (pointer_declarator "*local_114" (* "*") (identifier "local_114")) (; ";")) (declaration "byte ****local_110;" (type_identifier "byte") (pointer_declarator "****local_110" (* "*") (pointer_declarator "***local_110" (* "*") (pointer_declarator "**local_110" (* "*") (pointer_declarator "*local_110" (* "*") (identifier "local_110"))))) (; ";")) (declaration "byte ***local_10c;" (type_identifier "byte") (pointer_declarator "***local_10c" (* "*") (pointer_declarator "**local_10c" (* "*") (pointer_declarator "*local_10c" (* "*") (identifier "local_10c")))) (; ";")) (declaration "byte ***local_108;" (type_identifier "byte") (pointer_declarator "***local_108" (* "*") (pointer_declarator "**local_108" (* "*") (pointer_declarator "*local_108" (* "*") (identifier "local_108")))) (; ";")) (declaration "int local_104;" (primitive_type "int") (identifier "local_104") (; ";")) (declaration "int local_100;" (primitive_type "int") (identifier "local_100") (; ";")) (declaration "int local_fc;" (primitive_type "int") (identifier "local_fc") (; ";")) (declaration "int local_f8;" (primitive_type "int") (identifier "local_f8") (; ";")) (declaration "int local_f4;" (primitive_type "int") (identifier "local_f4") (; ";")) (declaration "undefined1 *local_f0;" (type_identifier "undefined1") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "int local_ec;" (primitive_type "int") (identifier "local_ec") (; ";")) (declaration "byte ***local_e8;" (type_identifier "byte") (pointer_declarator "***local_e8" (* "*") (pointer_declarator "**local_e8" (* "*") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8")))) (; ";")) (declaration "byte *local_e4;" (type_identifier "byte") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4")) (; ";")) (declaration "int local_e0;" (primitive_type "int") (identifier "local_e0") (; ";")) (declaration "char local_da;" (primitive_type "char") (identifier "local_da") (; ";")) (declaration "char local_d9;" (primitive_type "char") (identifier "local_d9") (; ";")) (declaration "uint local_d8;" (type_identifier "uint") (identifier "local_d8") (; ";")) (declaration "byte *local_d4;" (type_identifier "byte") (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" (* "*") (pointer_declarator "***local_cc" (* "*") (pointer_declarator "**local_cc" (* "*") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc"))))) (; ";")) (declaration "int local_c8;" (primitive_type "int") (identifier "local_c8") (; ";")) (declaration "byte ****local_c4;" (type_identifier "byte") (pointer_declarator "****local_c4" (* "*") (pointer_declarator "***local_c4" (* "*") (pointer_declarator "**local_c4" (* "*") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4"))))) (; ";")) (declaration "byte ****local_c0;" (type_identifier "byte") (pointer_declarator "****local_c0" (* "*") (pointer_declarator "***local_c0" (* "*") (pointer_declarator "**local_c0" (* "*") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0"))))) (; ";")) (declaration "byte ****local_bc;" (type_identifier "byte") (pointer_declarator "****local_bc" (* "*") (pointer_declarator "***local_bc" (* "*") (pointer_declarator "**local_bc" (* "*") (pointer_declarator "*local_bc" (* "*") (identifier "local_bc"))))) (; ";")) (declaration "int local_b8;" (primitive_type "int") (identifier "local_b8") (; ";")) (declaration "byte ***local_b4;" (type_identifier "byte") (pointer_declarator "***local_b4" (* "*") (pointer_declarator "**local_b4" (* "*") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")))) (; ";")) (declaration "int *local_b0;" (primitive_type "int") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "byte ****local_ac;" (type_identifier "byte") (pointer_declarator "****local_ac" (* "*") (pointer_declarator "***local_ac" (* "*") (pointer_declarator "**local_ac" (* "*") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac"))))) (; ";")) (declaration "byte ****local_a8;" (type_identifier "byte") (pointer_declarator "****local_a8" (* "*") (pointer_declarator "***local_a8" (* "*") (pointer_declarator "**local_a8" (* "*") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8"))))) (; ";")) (declaration "undefined1 local_a4 [8];" (type_identifier "undefined1") (array_declarator "local_a4 [8]" (identifier "local_a4") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "byte ****local_9c;" (type_identifier "byte") (pointer_declarator "****local_9c" (* "*") (pointer_declarator "***local_9c" (* "*") (pointer_declarator "**local_9c" (* "*") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c"))))) (; ";")) (declaration "byte ****local_98;" (type_identifier "byte") (pointer_declarator "****local_98" (* "*") (pointer_declarator "***local_98" (* "*") (pointer_declarator "**local_98" (* "*") (pointer_declarator "*local_98" (* "*") (identifier "local_98"))))) (; ";")) (declaration "byte ****local_94;" (type_identifier "byte") (pointer_declarator "****local_94" (* "*") (pointer_declarator "***local_94" (* "*") (pointer_declarator "**local_94" (* "*") (pointer_declarator "*local_94" (* "*") (identifier "local_94"))))) (; ";")) (declaration "byte ****local_90;" (type_identifier "byte") (pointer_declarator "****local_90" (* "*") (pointer_declarator "***local_90" (* "*") (pointer_declarator "**local_90" (* "*") (pointer_declarator "*local_90" (* "*") (identifier "local_90"))))) (; ";")) (declaration "byte ****local_8c;" (type_identifier "byte") (pointer_declarator "****local_8c" (* "*") (pointer_declarator "***local_8c" (* "*") (pointer_declarator "**local_8c" (* "*") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c"))))) (; ";")) (declaration "byte ****local_88;" (type_identifier "byte") (pointer_declarator "****local_88" (* "*") (pointer_declarator "***local_88" (* "*") (pointer_declarator "**local_88" (* "*") (pointer_declarator "*local_88" (* "*") (identifier "local_88"))))) (; ";")) (declaration "byte ****local_84;" (type_identifier "byte") (pointer_declarator "****local_84" (* "*") (pointer_declarator "***local_84" (* "*") (pointer_declarator "**local_84" (* "*") (pointer_declarator "*local_84" (* "*") (identifier "local_84"))))) (; ";")) (declaration "byte ***local_80;" (type_identifier "byte") (pointer_declarator "***local_80" (* "*") (pointer_declarator "**local_80" (* "*") (pointer_declarator "*local_80" (* "*") (identifier "local_80")))) (; ";")) (declaration "byte ****local_7c;" (type_identifier "byte") (pointer_declarator "****local_7c" (* "*") (pointer_declarator "***local_7c" (* "*") (pointer_declarator "**local_7c" (* "*") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c"))))) (; ";")) (declaration "uint local_78;" (type_identifier "uint") (identifier "local_78") (; ";")) (declaration "byte ****local_74;" (type_identifier "byte") (pointer_declarator "****local_74" (* "*") (pointer_declarator "***local_74" (* "*") (pointer_declarator "**local_74" (* "*") (pointer_declarator "*local_74" (* "*") (identifier "local_74"))))) (; ";")) (declaration "byte ***local_70;" (type_identifier "byte") (pointer_declarator "***local_70" (* "*") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70")))) (; ";")) (declaration "byte ****local_6c;" (type_identifier "byte") (pointer_declarator "****local_6c" (* "*") (pointer_declarator "***local_6c" (* "*") (pointer_declarator "**local_6c" (* "*") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c"))))) (; ";")) (declaration "byte ***local_68;" (type_identifier "byte") (pointer_declarator "***local_68" (* "*") (pointer_declarator "**local_68" (* "*") (pointer_declarator "*local_68" (* "*") (identifier "local_68")))) (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined1 local_50;" (type_identifier "undefined1") (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 "byte ****local_34;" (type_identifier "byte") (pointer_declarator "****local_34" (* "*") (pointer_declarator "***local_34" (* "*") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34"))))) (; ";")) (declaration "byte ***local_30;" (type_identifier "byte") (pointer_declarator "***local_30" (* "*") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30")))) (; ";")) (declaration "byte ****local_2c;" (type_identifier "byte") (pointer_declarator "****local_2c" (* "*") (pointer_declarator "***local_2c" (* "*") (pointer_declarator "**local_2c" (* "*") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c"))))) (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" (identifier "bVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar28 = FUN_000b484e();" (assignment_expression "uVar28 = FUN_000b484e()" (identifier "uVar28") (= "=") (call_expression "FUN_000b484e()" (identifier "FUN_000b484e") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_b0 = (int *)((ulonglong)uVar28 >> 0x20);" (assignment_expression "local_b0 = (int *)((ulonglong)uVar28 >> 0x20)" (identifier "local_b0") (= "=") (cast_expression "(int *)((ulonglong)uVar28 >> 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar28 >> 0x20" (cast_expression "(ulonglong)uVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar28")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_ec = (int)uVar28;" (assignment_expression "local_ec = (int)uVar28" (identifier "local_ec") (= "=") (cast_expression "(int)uVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar28"))) (; ";")) (expression_statement "local_e0 = unaff_EDI + 0x39c927;" (assignment_expression "local_e0 = unaff_EDI + 0x39c927" (identifier "local_e0") (= "=") (binary_expression "unaff_EDI + 0x39c927" (identifier "unaff_EDI") (+ "+") (number_literal "0x39c927"))) (; ";")) (expression_statement "local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;" (assignment_expression "local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6" (identifier "local_e4") (= "=") (binary_expression "BYTE_ARRAY_0039ce09 + unaff_EDI + 6" (binary_expression "BYTE_ARRAY_0039ce09 + unaff_EDI" (identifier "BYTE_ARRAY_0039ce09") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "6"))) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(*(int *)local_e4 + 8) == 0) {\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)local_e4 + 8) == 0" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" (* "*") (cast_expression "(int *)(*(int *)local_e4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)local_e4 + 8)" (( "(") (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);\n  }" ({ "{") (expression_statement "FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);" (call_expression "FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI)" (identifier "FUN_000da200") (argument_list "(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI)" (( "(") (binary_expression "unaff_EDI + 0x26ab94" (identifier "unaff_EDI") (+ "+") (number_literal "0x26ab94")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "&UNK_0027eccf + unaff_EDI" (pointer_expression "&UNK_0027eccf" (& "&") (identifier "UNK_0027eccf")) (+ "+") (identifier "unaff_EDI")) () ")"))) (; ";")) (} "}"))) (expression_statement "local_c0 = (byte ****)extraout_ECX;" (assignment_expression "local_c0 = (byte ****)extraout_ECX" (identifier "local_c0") (= "=") (cast_expression "(byte ****)extraout_ECX" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "extraout_ECX"))) (; ";")) (if_statement "if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }\n  else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(*(int *)local_e4 + 8) + 0x5934" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" (* "*") (cast_expression "(int *)(*(int *)local_e4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)local_e4 + 8)" (( "(") (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4"))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_114 = local_44;\n    local_4c[0] = local_114;\n                    \n    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);\n    puVar19 = auStack_11c;\n    uVar12 = extraout_ECX_01;\n  }" ({ "{") (expression_statement "local_114 = local_44;" (assignment_expression "local_114 = local_44" (identifier "local_114") (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_4c[0] = local_114;" (assignment_expression "local_4c[0] = local_114" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_114")) (; ";")) (expression_statement "FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);" (call_expression "FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add)" (identifier "FUN_000a8880") (argument_list "(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add)" (( "(") (identifier "local_4c") (, ",") (binary_expression "unaff_EDI + 0x299add" (identifier "unaff_EDI") (+ "+") (number_literal "0x299add")) (, ",") (binary_expression "unaff_EDI + 0x299add" (identifier "unaff_EDI") (+ "+") (number_literal "0x299add")) () ")"))) (; ";")) (expression_statement "puVar19 = auStack_11c;" (assignment_expression "puVar19 = auStack_11c" (identifier "puVar19") (= "=") (identifier "auStack_11c")) (; ";")) (expression_statement "uVar12 = extraout_ECX_01;" (assignment_expression "uVar12 = extraout_ECX_01" (identifier "uVar12") (= "=") (identifier "extraout_ECX_01")) (; ";")) (} "}")) (else_clause "else {\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" (else "else") (compound_statement "{\n    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }\n    local_114 = local_44;\n    puVar19 = &stack0xfffffee0;\n  }" ({ "{") (if_statement "if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }\n    else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" (if "if") (parenthesized_expression "((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57))" (( "(") (binary_expression "(*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)" (subscript_expression "(*extraout_ECX)[0x10]" (parenthesized_expression "(*extraout_ECX)" (( "(") (pointer_expression "*extraout_ECX" (* "*") (identifier "extraout_ECX")) () ")")) ([ "[") (number_literal "0x10") (] "]")) (== "==") (cast_expression "(byte ***)(unaff_EDI + 0x39d57)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(unaff_EDI + 0x39d57)" (( "(") (binary_expression "unaff_EDI + 0x39d57" (identifier "unaff_EDI") (+ "+") (number_literal "0x39d57")) () ")")))) () ")")) (compound_statement "{\n                    \n      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);\n      uVar12 = extraout_ECX_00;\n    }" ({ "{") (expression_statement "FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);" (call_expression "FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1)" (identifier "FUN_000b1290") (argument_list "(local_4c,extraout_ECX + 0x24,param_1)" (( "(") (identifier "local_4c") (, ",") (binary_expression "extraout_ECX + 0x24" (identifier "extraout_ECX") (+ "+") (number_literal "0x24")) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar12 = extraout_ECX_00;" (assignment_expression "uVar12 = extraout_ECX_00" (identifier "uVar12") (= "=") (identifier "extraout_ECX_00")) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" (else "else") (compound_statement "{\n      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);\n      uVar12 = extraout_ECX_02;\n    }" ({ "{") (expression_statement "(*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);" (call_expression "(*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1)" (parenthesized_expression "(*(code *)(*extraout_ECX)[0x10])" (( "(") (pointer_expression "*(code *)(*extraout_ECX)[0x10]" (* "*") (cast_expression "(code *)(*extraout_ECX)[0x10]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(*extraout_ECX)[0x10]" (parenthesized_expression "(*extraout_ECX)" (( "(") (pointer_expression "*extraout_ECX" (* "*") (identifier "extraout_ECX")) () ")")) ([ "[") (number_literal "0x10") (] "]")))) () ")")) (argument_list "(local_4c,extraout_ECX,param_1)" (( "(") (identifier "local_4c") (, ",") (identifier "extraout_ECX") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar12 = extraout_ECX_02;" (assignment_expression "uVar12 = extraout_ECX_02" (identifier "uVar12") (= "=") (identifier "extraout_ECX_02")) (; ";")) (} "}")))) (expression_statement "local_114 = local_44;" (assignment_expression "local_114 = local_44" (identifier "local_114") (= "=") (identifier "local_44")) (; ";")) (expression_statement "puVar19 = &stack0xfffffee0;" (assignment_expression "puVar19 = &stack0xfffffee0" (identifier "puVar19") (= "=") (pointer_expression "&stack0xfffffee0" (& "&") (identifier "stack0xfffffee0"))) (; ";")) (} "}")))) (expression_statement "pbVar21 = local_4c[0];" (assignment_expression "pbVar21 = local_4c[0]" (identifier "pbVar21") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" (identifier "iVar16") (= "=") (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4")))) (; ";")) (if_statement "if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar16 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar16 + 8) == 0" (pointer_expression "*(int *)(iVar16 + 8)" (* "*") (cast_expression "(int *)(iVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar19 + -4) = uVar12;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n    *(undefined4 *)(puVar19 + -0x14) = 0x78688;\n    FUN_000da200();\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar19 + -4) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -4)" (( "(") (binary_expression "puVar19 + -4" (identifier "puVar19") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar19 + -8)" (* "*") (cast_expression "(int *)(puVar19 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -8)" (( "(") (binary_expression "puVar19 + -8" (identifier "puVar19") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11dc58" (identifier "local_e0") (+ "+") (number_literal "-0x11dc58"))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar19 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0xc)" (( "(") (binary_expression "puVar19 + -0xc" (identifier "puVar19") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar19 + -0x10)" (* "*") (cast_expression "(int *)(puVar19 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x131d93" (identifier "local_e0") (+ "+") (number_literal "-0x131d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78688;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78688" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78688")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }\n  else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0" (pointer_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(iVar16 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar16 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(iVar16 + 8) + 0x5934" (pointer_expression "*(int *)(iVar16 + 8)" (* "*") (cast_expression "(int *)(iVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000777af:\n    local_d9 = '\0';\n    local_104 = 0;\n    local_f4 = 0;\n    local_100 = 0;\n    local_f8 = 0;\n    local_fc = 0;\n  }" ({ "{") (labeled_statement "LAB_000777af:\n    local_d9 = '\0';" (statement_identifier "LAB_000777af") (: ":") (expression_statement "local_d9 = '\0';" (assignment_expression "local_d9 = '\0'" (identifier "local_d9") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" (identifier "local_104") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" (identifier "local_f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" (identifier "local_f8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" (identifier "local_fc") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" (else "else") (compound_statement "{\n    local_bc = (byte ****)&local_2c;\n    local_34 = local_bc;\n    pbVar13 = (byte *)0xffffffff;\n    if (local_4c[0] != (byte *)0x0) {\n      *(byte **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(byte **)(puVar19 + -8) = pbVar13;\n    local_c4 = (byte ****)&local_34;\n    *(byte **)(puVar19 + -0xc) = pbVar21;\n    *(byte *****)(puVar19 + -0x10) = local_c4;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;\n    FUN_000a8880();\n    iVar16 = 5;\n    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;\n    bVar26 = puVar19 == (undefined1 *)0x0;\n    pbVar21 = (byte *)(local_e0 + -0x11d050);\n    pppppbVar23 = (byte *****)local_34;\n    do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);\n    bVar25 = false;\n    bVar24 = (!bVar24 && !bVar26) == bVar24;\n    if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }\n    if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }\n    *(byte *****)(puVar19 + -0xc) = local_c4;\n    local_34 = local_c0;\n    local_30 = (byte ***)param_1;\n    local_bc = *(byte *****)(local_ec + 0x15c);\n    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;\n    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;\n    local_fc = FUN_000acc50();\n    local_f8 = local_fc + 0xc;\n    local_100 = local_fc + 0x18;\n    local_f4 = local_fc + 0x24;\n    local_104 = local_fc + 0x30;\n    iVar16 = *(int *)local_e4;\n    local_d9 = '\x01';\n  }" ({ "{") (expression_statement "local_bc = (byte ****)&local_2c;" (assignment_expression "local_bc = (byte ****)&local_2c" (identifier "local_bc") (= "=") (cast_expression "(byte ****)&local_2c" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")))) (; ";")) (expression_statement "local_34 = local_bc;" (assignment_expression "local_34 = local_bc" (identifier "local_34") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (byte *)0xffffffff" (identifier "pbVar13") (= "=") (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 **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\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 **)(puVar19 + -0x10) = local_4c[0];\n      *(undefined4 *)(puVar19 + -0x14) = 0x78417;\n      sVar10 = strlen(*(char **)(puVar19 + -0x10));\n      pbVar13 = pbVar21 + sVar10;\n    }" ({ "{") (expression_statement "*(byte **)(puVar19 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0x10)" (* "*") (cast_expression "(byte **)(puVar19 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78417;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78417" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78417")) (; ";")) (expression_statement "sVar10 = strlen(*(char **)(puVar19 + -0x10));" (assignment_expression "sVar10 = strlen(*(char **)(puVar19 + -0x10))" (identifier "sVar10") (= "=") (call_expression "strlen(*(char **)(puVar19 + -0x10))" (identifier "strlen") (argument_list "(*(char **)(puVar19 + -0x10))" (( "(") (pointer_expression "*(char **)(puVar19 + -0x10)" (* "*") (cast_expression "(char **)(puVar19 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "pbVar13 = pbVar21 + sVar10;" (assignment_expression "pbVar13 = pbVar21 + sVar10" (identifier "pbVar13") (= "=") (binary_expression "pbVar21 + sVar10" (identifier "pbVar21") (+ "+") (identifier "sVar10"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar19 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar19 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -4)" (( "(") (binary_expression "puVar19 + -4" (identifier "puVar19") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)(puVar19 + -8) = pbVar13;" (assignment_expression "*(byte **)(puVar19 + -8) = pbVar13" (pointer_expression "*(byte **)(puVar19 + -8)" (* "*") (cast_expression "(byte **)(puVar19 + -8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -8)" (( "(") (binary_expression "puVar19 + -8" (identifier "puVar19") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" (identifier "local_c4") (= "=") (cast_expression "(byte ****)&local_34" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_34" (& "&") (identifier "local_34")))) (; ";")) (expression_statement "*(byte **)(puVar19 + -0xc) = pbVar21;" (assignment_expression "*(byte **)(puVar19 + -0xc) = pbVar21" (pointer_expression "*(byte **)(puVar19 + -0xc)" (* "*") (cast_expression "(byte **)(puVar19 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0xc)" (( "(") (binary_expression "puVar19 + -0xc" (identifier "puVar19") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "*(byte *****)(puVar19 + -0x10) = local_c4;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_c4" (pointer_expression "*(byte *****)(puVar19 + -0x10)" (* "*") (cast_expression "(byte *****)(puVar19 + -0x10)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7842f;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7842f" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x7842f")) (; ";")) (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" (identifier "FUN_000a8880") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar16 = 5;" (assignment_expression "iVar16 = 5" (identifier "iVar16") (= "=") (number_literal "5")) (; ";")) (expression_statement "bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;" (assignment_expression "bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10" (identifier "bVar24") (= "=") (binary_expression "(undefined1 *)0xffffffef < puVar19 + -0x10" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")))) (; ";")) (expression_statement "bVar26 = puVar19 == (undefined1 *)0x0;" (assignment_expression "bVar26 = puVar19 == (undefined1 *)0x0" (identifier "bVar26") (= "=") (binary_expression "puVar19 == (undefined1 *)0x0" (identifier "puVar19") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11d050);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11d050)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11d050)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11d050)" (( "(") (binary_expression "local_e0 + -0x11d050" (identifier "local_e0") (+ "+") (number_literal "-0x11d050")) () ")")))) (; ";")) (expression_statement "pppppbVar23 = (byte *****)local_34;" (assignment_expression "pppppbVar23 = (byte *****)local_34" (identifier "pppppbVar23") (= "=") (cast_expression "(byte *****)local_34" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_34"))) (; ";")) (do_statement "do {\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    } while (bVar26);" (do "do") (compound_statement "{\n      if (iVar16 == 0) break;\n      iVar16 = iVar16 + -1;\n      bVar24 = *pbVar21 < *(byte *)pppppbVar23;\n      bVar26 = *pbVar21 == *(byte *)pppppbVar23;\n      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n    }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar21 < *(byte *)pppppbVar23;" (assignment_expression "bVar24 = *pbVar21 < *(byte *)pppppbVar23" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 < *(byte *)pppppbVar23" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*(byte *)pppppbVar23" (* "*") (cast_expression "(byte *)pppppbVar23" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar23"))))) (; ";")) (expression_statement "bVar26 = *pbVar21 == *(byte *)pppppbVar23;" (assignment_expression "bVar26 = *pbVar21 == *(byte *)pppppbVar23" (identifier "bVar26") (= "=") (binary_expression "*pbVar21 == *(byte *)pppppbVar23" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*(byte *)pppppbVar23" (* "*") (cast_expression "(byte *)pppppbVar23" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar23"))))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);" (assignment_expression "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" (identifier "pppppbVar23") (= "=") (cast_expression "(byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" (( "(") (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2 + 1" (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2" (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23")) (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" (identifier "bVar24") (= "=") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (!bVar24) {\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n      iVar16 = 0xf;\n      pbVar21 = (byte *)(local_e0 + -0x11cf51);\n      pppppbVar23 = (byte *****)local_34;\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);\n      if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }\n    }" ({ "{") (expression_statement "iVar16 = 0xf;" (assignment_expression "iVar16 = 0xf" (identifier "iVar16") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf51);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf51)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11cf51)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11cf51)" (( "(") (binary_expression "local_e0 + -0x11cf51" (identifier "local_e0") (+ "+") (number_literal "-0x11cf51")) () ")")))) (; ";")) (expression_statement "pppppbVar23 = (byte *****)local_34;" (assignment_expression "pppppbVar23 = (byte *****)local_34" (identifier "pppppbVar23") (= "=") (cast_expression "(byte *****)local_34" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_34"))) (; ";")) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      } while (bVar24);" (do "do") (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar25 = *pbVar21 < *(byte *)pppppbVar23;\n        bVar24 = *pbVar21 == *(byte *)pppppbVar23;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);\n      }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar21 < *(byte *)pppppbVar23;" (assignment_expression "bVar25 = *pbVar21 < *(byte *)pppppbVar23" (identifier "bVar25") (= "=") (binary_expression "*pbVar21 < *(byte *)pppppbVar23" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*(byte *)pppppbVar23" (* "*") (cast_expression "(byte *)pppppbVar23" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar23"))))) (; ";")) (expression_statement "bVar24 = *pbVar21 == *(byte *)pppppbVar23;" (assignment_expression "bVar24 = *pbVar21 == *(byte *)pppppbVar23" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 == *(byte *)pppppbVar23" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*(byte *)pppppbVar23" (* "*") (cast_expression "(byte *)pppppbVar23" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar23"))))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);" (assignment_expression "pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" (identifier "pppppbVar23") (= "=") (cast_expression "(byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)pppppbVar23 + (uint)bVar27 * -2 + 1)" (( "(") (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2 + 1" (binary_expression "(int)pppppbVar23 + (uint)bVar27 * -2" (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23")) (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }" (if "if") (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (!= "!=") (identifier "bVar25")) () ")")) (compound_statement "{\n        if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }\n        goto LAB_000777af;\n      }" ({ "{") (if_statement "if (local_34 == local_bc) {\n          iVar16 = *(int *)local_e4;\n        }\n        else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" (if "if") (parenthesized_expression "(local_34 == local_bc)" (( "(") (binary_expression "local_34 == local_bc" (identifier "local_34") (== "==") (identifier "local_bc")) () ")")) (compound_statement "{\n          iVar16 = *(int *)local_e4;\n        }" ({ "{") (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" (identifier "iVar16") (= "=") (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4")))) (; ";")) (} "}")) (else_clause "else {\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" (else "else") (compound_statement "{\n          *(byte *****)(puVar19 + -0x10) = local_34;\n          *(undefined4 *)(puVar19 + -0x14) = 0x78539;\n          FUN_00248220();\n          iVar16 = *(int *)local_e4;\n        }" ({ "{") (expression_statement "*(byte *****)(puVar19 + -0x10) = local_34;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_34" (pointer_expression "*(byte *****)(puVar19 + -0x10)" (* "*") (cast_expression "(byte *****)(puVar19 + -0x10)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78539;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78539" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78539")) (; ";")) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" (identifier "FUN_00248220") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" (identifier "iVar16") (= "=") (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4")))) (; ";")) (} "}")))) (goto_statement "goto LAB_000777af;" (goto "goto") (statement_identifier "LAB_000777af") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_34 != local_bc) {\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }" (if "if") (parenthesized_expression "(local_34 != local_bc)" (( "(") (binary_expression "local_34 != local_bc" (identifier "local_34") (!= "!=") (identifier "local_bc")) () ")")) (compound_statement "{\n      *(byte *****)(puVar19 + -0x10) = local_34;\n      *(undefined4 *)(puVar19 + -0x14) = 0x78664;\n      FUN_00248220();\n    }" ({ "{") (expression_statement "*(byte *****)(puVar19 + -0x10) = local_34;" (assignment_expression "*(byte *****)(puVar19 + -0x10) = local_34" (pointer_expression "*(byte *****)(puVar19 + -0x10)" (* "*") (cast_expression "(byte *****)(puVar19 + -0x10)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78664;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78664" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78664")) (; ";")) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" (identifier "FUN_00248220") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(byte *****)(puVar19 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar19 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar19 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar19 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar19 + -0xc)" (( "(") (binary_expression "puVar19 + -0xc" (identifier "puVar19") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" (identifier "local_34") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "local_30 = (byte ***)param_1;" (assignment_expression "local_30 = (byte ***)param_1" (identifier "local_30") (= "=") (cast_expression "(byte ***)param_1" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "param_1"))) (; ";")) (expression_statement "local_bc = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_bc = *(byte *****)(local_ec + 0x15c)" (identifier "local_bc") (= "=") (pointer_expression "*(byte *****)(local_ec + 0x15c)" (* "*") (cast_expression "(byte *****)(local_ec + 0x15c)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(local_ec + 0x15c)" (( "(") (binary_expression "local_ec + 0x15c" (identifier "local_ec") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "*(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;" (assignment_expression "*(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15" (pointer_expression "*(byte ******)(puVar19 + -0x10)" (* "*") (cast_expression "(byte ******)(puVar19 + -0x10)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(byte *****)local_bc + 0x15" (cast_expression "(byte *****)local_bc" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_bc")) (+ "+") (number_literal "0x15"))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x784b0;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x784b0" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x784b0")) (; ";")) (expression_statement "local_fc = FUN_000acc50();" (assignment_expression "local_fc = FUN_000acc50()" (identifier "local_fc") (= "=") (call_expression "FUN_000acc50()" (identifier "FUN_000acc50") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_f8 = local_fc + 0xc;" (assignment_expression "local_f8 = local_fc + 0xc" (identifier "local_f8") (= "=") (binary_expression "local_fc + 0xc" (identifier "local_fc") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "local_100 = local_fc + 0x18;" (assignment_expression "local_100 = local_fc + 0x18" (identifier "local_100") (= "=") (binary_expression "local_fc + 0x18" (identifier "local_fc") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "local_f4 = local_fc + 0x24;" (assignment_expression "local_f4 = local_fc + 0x24" (identifier "local_f4") (= "=") (binary_expression "local_fc + 0x24" (identifier "local_fc") (+ "+") (number_literal "0x24"))) (; ";")) (expression_statement "local_104 = local_fc + 0x30;" (assignment_expression "local_104 = local_fc + 0x30" (identifier "local_104") (= "=") (binary_expression "local_fc + 0x30" (identifier "local_fc") (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "iVar16 = *(int *)local_e4;" (assignment_expression "iVar16 = *(int *)local_e4" (identifier "iVar16") (= "=") (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4")))) (; ";")) (expression_statement "local_d9 = '\x01';" (assignment_expression "local_d9 = '\x01'" (identifier "local_d9") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")))) (expression_statement "piVar4 = local_b0;" (assignment_expression "piVar4 = local_b0" (identifier "piVar4") (= "=") (identifier "local_b0")) (; ";")) (if_statement "if (*(int *)(iVar16 + 8) == 0) {\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar16 + 8) == 0)" (( "(") (binary_expression "*(int *)(iVar16 + 8) == 0" (pointer_expression "*(int *)(iVar16 + 8)" (* "*") (cast_expression "(int *)(iVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar19 + -4) = 0;\n    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;\n    *(undefined4 *)(puVar19 + -0xc) = 0x5c;\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;\n                    \n                    \n    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;\n    FUN_000da200();\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar19 + -4) = 0;" (assignment_expression "*(undefined4 *)(puVar19 + -4) = 0" (pointer_expression "*(undefined4 *)(puVar19 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -4)" (( "(") (binary_expression "puVar19 + -4" (identifier "puVar19") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar19 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar19 + -8)" (* "*") (cast_expression "(int *)(puVar19 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -8)" (( "(") (binary_expression "puVar19 + -8" (identifier "puVar19") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11dc58" (identifier "local_e0") (+ "+") (number_literal "-0x11dc58"))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar19 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0xc)" (( "(") (binary_expression "puVar19 + -0xc" (identifier "puVar19") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar19 + -0x10)" (* "*") (cast_expression "(int *)(puVar19 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x131d93" (identifier "local_e0") (+ "+") (number_literal "-0x131d93"))) (; ";")) (expression_statement "*(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;" (assignment_expression "*(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc" (pointer_expression "*(undefined1 **)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_000786bc" (& "&") (identifier "LAB_000786bc"))) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2)" (( "(") (binary_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2" (pointer_expression "*(int *)(*(int *)(iVar16 + 8) + 0x5934)" (* "*") (cast_expression "(int *)(*(int *)(iVar16 + 8) + 0x5934)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar16 + 8) + 0x5934)" (( "(") (binary_expression "*(int *)(iVar16 + 8) + 0x5934" (pointer_expression "*(int *)(iVar16 + 8)" (* "*") (cast_expression "(int *)(iVar16 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5934")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    iVar16 = *local_b0;\n    *(int **)(puVar19 + -0x10) = local_b0;\n    pcVar6 = *(code **)(iVar16 + 0x48);\n    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;\n    cVar9 = (*pcVar6)();\n    if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar16 = *local_b0;" (assignment_expression "iVar16 = *local_b0" (identifier "iVar16") (= "=") (pointer_expression "*local_b0" (* "*") (identifier "local_b0"))) (; ";")) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" (* "*") (cast_expression "(int **)(puVar19 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "pcVar6 = *(code **)(iVar16 + 0x48);" (assignment_expression "pcVar6 = *(code **)(iVar16 + 0x48)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(iVar16 + 0x48)" (* "*") (cast_expression "(code **)(iVar16 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + 0x48)" (( "(") (binary_expression "iVar16 + 0x48" (identifier "iVar16") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7831b;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7831b" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x7831b")) (; ";")) (expression_statement "cVar9 = (*pcVar6)();" (assignment_expression "cVar9 = (*pcVar6)()" (identifier "cVar9") (= "=") (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar9 != '\0') {\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar6 = *(code **)(*piVar4 + 8);\n      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      pcVar6 = *(code **)(*piVar4 + 0x4c);\n      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);\n      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);\n      if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }\n      iVar16 = 0xc;\n      pbVar21 = (byte *)(local_e0 + -0x11c39e);\n      pbVar13 = local_4c[0];\n      do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      bVar25 = false;\n      bVar24 = (!bVar24 && !bVar26) == bVar24;\n      if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "pcVar6 = *(code **)(*piVar4 + 8);" (assignment_expression "pcVar6 = *(code **)(*piVar4 + 8)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(*piVar4 + 8)" (* "*") (cast_expression "(code **)(*piVar4 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 8)" (( "(") (binary_expression "*piVar4 + 8" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (pcVar6 != (code *)(local_e0 + -0x36d580)) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" (if "if") (parenthesized_expression "(pcVar6 != (code *)(local_e0 + -0x36d580))" (( "(") (binary_expression "pcVar6 != (code *)(local_e0 + -0x36d580)" (identifier "pcVar6") (!= "!=") (cast_expression "(code *)(local_e0 + -0x36d580)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x36d580)" (( "(") (binary_expression "local_e0 + -0x36d580" (identifier "local_e0") (+ "+") (number_literal "-0x36d580")) () ")")))) () ")")) (compound_statement "{\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n                    \n        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" ({ "{") (expression_statement "*(byte **)(puVar19 + -0xc) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0xc) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0xc)" (* "*") (cast_expression "(byte **)(puVar19 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0xc)" (( "(") (binary_expression "puVar19 + -0xc" (identifier "puVar19") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" (* "*") (cast_expression "(int **)(puVar19 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7856c;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7856c" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x7856c")) (; ";")) (expression_statement "local_da = (*pcVar6)();" (assignment_expression "local_da = (*pcVar6)()" (identifier "local_da") (= "=") (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_00077807;" (goto "goto") (statement_identifier "LAB_00077807") (; ";")) (} "}"))) (expression_statement "pcVar6 = *(code **)(*piVar4 + 0x4c);" (assignment_expression "pcVar6 = *(code **)(*piVar4 + 0x4c)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(*piVar4 + 0x4c)" (* "*") (cast_expression "(code **)(*piVar4 + 0x4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x4c)" (( "(") (binary_expression "*piVar4 + 0x4c" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);" (assignment_expression "bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U)" (identifier "bVar24") (= "=") (binary_expression "pcVar6 < (code *)(local_e0 - 0x36d4c0U)" (identifier "pcVar6") (< "<") (cast_expression "(code *)(local_e0 - 0x36d4c0U)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 - 0x36d4c0U)" (( "(") (binary_expression "local_e0 - 0x36d4c0U" (identifier "local_e0") (- "-") (number_literal "0x36d4c0U")) () ")"))))) (; ";")) (expression_statement "bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);" (assignment_expression "bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U)" (identifier "bVar26") (= "=") (binary_expression "pcVar6 == (code *)(local_e0 - 0x36d4c0U)" (identifier "pcVar6") (== "==") (cast_expression "(code *)(local_e0 - 0x36d4c0U)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 - 0x36d4c0U)" (( "(") (binary_expression "local_e0 - 0x36d4c0U" (identifier "local_e0") (- "-") (number_literal "0x36d4c0U")) () ")"))))) (; ";")) (if_statement "if (!bVar26) {\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n        *(byte **)(puVar19 + -0xc) = local_4c[0];\n        *(int **)(puVar19 + -0x10) = local_b0;\n        *(undefined4 *)(puVar19 + -0x14) = 0x78586;\n        local_da = (*pcVar6)();\n        goto LAB_00077807;\n      }" ({ "{") (expression_statement "*(byte **)(puVar19 + -0xc) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0xc) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0xc)" (* "*") (cast_expression "(byte **)(puVar19 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0xc)" (( "(") (binary_expression "puVar19 + -0xc" (identifier "puVar19") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(int **)(puVar19 + -0x10) = local_b0;" (assignment_expression "*(int **)(puVar19 + -0x10) = local_b0" (pointer_expression "*(int **)(puVar19 + -0x10)" (* "*") (cast_expression "(int **)(puVar19 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78586;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78586" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78586")) (; ";")) (expression_statement "local_da = (*pcVar6)();" (assignment_expression "local_da = (*pcVar6)()" (identifier "local_da") (= "=") (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_00077807;" (goto "goto") (statement_identifier "LAB_00077807") (; ";")) (} "}"))) (expression_statement "iVar16 = 0xc;" (assignment_expression "iVar16 = 0xc" (identifier "iVar16") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c39e);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c39e)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11c39e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11c39e)" (( "(") (binary_expression "local_e0 + -0x11c39e" (identifier "local_e0") (+ "+") (number_literal "-0x11c39e")) () ")")))) (; ";")) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" (do "do") (compound_statement "{\n        if (iVar16 == 0) break;\n        iVar16 = iVar16 + -1;\n        bVar24 = *pbVar21 < *pbVar13;\n        bVar26 = *pbVar21 == *pbVar13;\n        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar21 < *pbVar13;" (assignment_expression "bVar24 = *pbVar21 < *pbVar13" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar26 = *pbVar21 == *pbVar13;" (assignment_expression "bVar26 = *pbVar21 == *pbVar13" (identifier "bVar26") (= "=") (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" (identifier "bVar24") (= "=") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (!bVar24) {\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n        iVar16 = 0x11;\n        pbVar21 = (byte *)(local_e0 + -0x11c391);\n        pbVar13 = local_4c[0];\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        bVar26 = false;\n        bVar24 = (!bVar25 && !bVar24) == bVar25;\n        if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar16 = 0x11;" (assignment_expression "iVar16 = 0x11" (identifier "iVar16") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c391);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c391)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11c391)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11c391)" (( "(") (binary_expression "local_e0 + -0x11c391" (identifier "local_e0") (+ "+") (number_literal "-0x11c391")) () ")")))) (; ";")) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);" (do "do") (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar25 = *pbVar21 < *pbVar13;\n          bVar24 = *pbVar21 == *pbVar13;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar21 < *pbVar13;" (assignment_expression "bVar25 = *pbVar21 < *pbVar13" (identifier "bVar25") (= "=") (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" (identifier "bVar24") (= "=") (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar24) {\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n          iVar16 = 0xc;\n          pbVar21 = (byte *)(local_e0 + -0x11c37f);\n          pbVar13 = local_4c[0];\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);\n          bVar25 = false;\n          bVar24 = (!bVar26 && !bVar24) == bVar26;\n          if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar16 = 0xc;" (assignment_expression "iVar16 = 0xc" (identifier "iVar16") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c37f);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c37f)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11c37f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11c37f)" (( "(") (binary_expression "local_e0 + -0x11c37f" (identifier "local_e0") (+ "+") (number_literal "-0x11c37f")) () ")")))) (; ";")) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          } while (bVar24);" (do "do") (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar26 = *pbVar21 < *pbVar13;\n            bVar24 = *pbVar21 == *pbVar13;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = *pbVar21 < *pbVar13;" (assignment_expression "bVar26 = *pbVar21 < *pbVar13" (identifier "bVar26") (= "=") (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar26 && !bVar24) == bVar26;" (assignment_expression "bVar24 = (!bVar26 && !bVar24) == bVar26" (identifier "bVar24") (= "=") (binary_expression "(!bVar26 && !bVar24) == bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" (( "(") (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar26"))) (; ";")) (if_statement "if (!bVar24) {\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n            iVar16 = 0x11;\n            pbVar21 = (byte *)(local_e0 + -0x11c372);\n            pbVar13 = local_4c[0];\n            do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);\n            bVar26 = false;\n            bVar24 = (!bVar25 && !bVar24) == bVar25;\n            if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }\n          }" ({ "{") (expression_statement "iVar16 = 0x11;" (assignment_expression "iVar16 = 0x11" (identifier "iVar16") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c372);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c372)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11c372)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11c372)" (( "(") (binary_expression "local_e0 + -0x11c372" (identifier "local_e0") (+ "+") (number_literal "-0x11c372")) () ")")))) (; ";")) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            } while (bVar24);" (do "do") (compound_statement "{\n              if (iVar16 == 0) break;\n              iVar16 = iVar16 + -1;\n              bVar25 = *pbVar21 < *pbVar13;\n              bVar24 = *pbVar21 == *pbVar13;\n              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar21 < *pbVar13;" (assignment_expression "bVar25 = *pbVar21 < *pbVar13" (identifier "bVar25") (= "=") (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar25 && !bVar24) == bVar25;" (assignment_expression "bVar24 = (!bVar25 && !bVar24) == bVar25" (identifier "bVar24") (= "=") (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar24) {\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n              iVar16 = 9;\n              pbVar21 = (byte *)(local_e0 + -0x11c360);\n              pbVar13 = local_4c[0];\n              do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);\n              local_da = (!bVar26 && !bVar24) != bVar26;\n              goto LAB_00077807;\n            }" ({ "{") (expression_statement "iVar16 = 9;" (assignment_expression "iVar16 = 9" (identifier "iVar16") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11c360);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11c360)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11c360)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11c360)" (( "(") (binary_expression "local_e0 + -0x11c360" (identifier "local_e0") (+ "+") (number_literal "-0x11c360")) () ")")))) (; ";")) (expression_statement "pbVar13 = local_4c[0];" (assignment_expression "pbVar13 = local_4c[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              } while (bVar24);" (do "do") (compound_statement "{\n                if (iVar16 == 0) break;\n                iVar16 = iVar16 + -1;\n                bVar26 = *pbVar21 < *pbVar13;\n                bVar24 = *pbVar21 == *pbVar13;\n                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = *pbVar21 < *pbVar13;" (assignment_expression "bVar26 = *pbVar21 < *pbVar13" (identifier "bVar26") (= "=") (binary_expression "*pbVar21 < *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar24 = *pbVar21 == *pbVar13;" (assignment_expression "bVar24 = *pbVar21 == *pbVar13" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 == *pbVar13" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar27 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "local_da = (!bVar26 && !bVar24) != bVar26;" (assignment_expression "local_da = (!bVar26 && !bVar24) != bVar26" (identifier "local_da") (= "=") (binary_expression "(!bVar26 && !bVar24) != bVar26" (parenthesized_expression "(!bVar26 && !bVar24)" (( "(") (binary_expression "!bVar26 && !bVar24" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (!= "!=") (identifier "bVar26"))) (; ";")) (goto_statement "goto LAB_00077807;" (goto "goto") (statement_identifier "LAB_00077807") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_da = '\0';" (assignment_expression "local_da = '\0'" (identifier "local_da") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (labeled_statement "LAB_00077807:\n  if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" (statement_identifier "LAB_00077807") (: ":") (if_statement "if (param_3 != (int *)0x0) {\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" (if "if") (parenthesized_expression "(param_3 != (int *)0x0)" (( "(") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_e8 = (byte ***)0x0;\n    local_f0 = local_a4;\n    local_110 = (byte ****)&local_90;\n    local_b0 = (int *)0x0;\n    puVar20 = puVar19;\n    do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);\n  }" ({ "{") (expression_statement "local_e8 = (byte ***)0x0;" (assignment_expression "local_e8 = (byte ***)0x0" (identifier "local_e8") (= "=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_f0 = local_a4;" (assignment_expression "local_f0 = local_a4" (identifier "local_f0") (= "=") (identifier "local_a4")) (; ";")) (expression_statement "local_110 = (byte ****)&local_90;" (assignment_expression "local_110 = (byte ****)&local_90" (identifier "local_110") (= "=") (cast_expression "(byte ****)&local_90" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_90" (& "&") (identifier "local_90")))) (; ";")) (expression_statement "local_b0 = (int *)0x0;" (assignment_expression "local_b0 = (int *)0x0" (identifier "local_b0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" (identifier "puVar20") (= "=") (identifier "puVar19")) (; ";")) (do_statement "do {\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    } while (param_3 != local_b0);" (do "do") (compound_statement "{\n      ppppbVar22 = local_c0;\n      local_d8 = param_2[2];\n      local_b8 = param_2[5];\n      ppppbVar3 = (byte ****)param_2[3];\n      local_bc = (byte ****)param_2[4];\n      if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }\nLAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);\n      param_2 = param_2 + 6;\n      puVar20 = puVar19;\n    }" ({ "{") (expression_statement "ppppbVar22 = local_c0;" (assignment_expression "ppppbVar22 = local_c0" (identifier "ppppbVar22") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "local_d8 = param_2[2];" (assignment_expression "local_d8 = param_2[2]" (identifier "local_d8") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_b8 = param_2[5];" (assignment_expression "local_b8 = param_2[5]" (identifier "local_b8") (= "=") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "ppppbVar3 = (byte ****)param_2[3];" (assignment_expression "ppppbVar3 = (byte ****)param_2[3]" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)param_2[3]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_bc = (byte ****)param_2[4];" (assignment_expression "local_bc = (byte ****)param_2[4]" (identifier "local_bc") (= "=") (cast_expression "(byte ****)param_2[4]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (ppppbVar3 < param_4) {\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }\n      else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" (if "if") (parenthesized_expression "(ppppbVar3 < param_4)" (( "(") (binary_expression "ppppbVar3 < param_4" (identifier "ppppbVar3") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n        if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }\n        iVar16 = param_5 + (int)ppppbVar3 * 0x18;\n        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);\n        puVar19 = puVar20;\n        if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }\n        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }\n        puVar19 = puVar20;\n        if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (param_5 == 0) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0xea;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;\n          FUN_000da200();\n        }" ({ "{") (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4" (pointer_expression "*(int *)(puVar20 + -8)" (* "*") (cast_expression "(int *)(puVar20 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11e2b4" (identifier "local_e0") (+ "+") (number_literal "-0x11e2b4"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xea;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xea" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xea")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11cf41" (identifier "local_e0") (+ "+") (number_literal "-0x11cf41"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785a9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785a9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x785a9")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar16 = param_5 + (int)ppppbVar3 * 0x18;" (assignment_expression "iVar16 = param_5 + (int)ppppbVar3 * 0x18" (identifier "iVar16") (= "=") (binary_expression "param_5 + (int)ppppbVar3 * 0x18" (identifier "param_5") (+ "+") (binary_expression "(int)ppppbVar3 * 0x18" (cast_expression "(int)ppppbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar3")) (* "*") (number_literal "0x18")))) (; ";")) (expression_statement "local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);" (assignment_expression "local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6)" (identifier "local_b4") (= "=") (binary_expression "(byte ***)(uint)*(ushort *)(iVar16 + 6)" (cast_expression "(byte ***)(uint)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)(iVar16 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 6)" (( "(") (binary_expression "iVar16 + 6" (identifier "iVar16") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" (identifier "puVar19") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (local_b4 < (byte ****)0xff00) {\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }\n        else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" (if "if") (parenthesized_expression "(local_b4 < (byte ****)0xff00)" (( "(") (binary_expression "local_b4 < (byte ****)0xff00" (identifier "local_b4") (< "<") (cast_expression "(byte ****)0xff00" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xff00"))) () ")")) (compound_statement "{\nLAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }\n        }" ({ "{") (labeled_statement "LAB_000779f0:\n          local_cc = *(byte *****)(iVar16 + 8);" (statement_identifier "LAB_000779f0") (: ":") (expression_statement "local_cc = *(byte *****)(iVar16 + 8);" (assignment_expression "local_cc = *(byte *****)(iVar16 + 8)" (identifier "local_cc") (= "=") (pointer_expression "*(byte *****)(iVar16 + 8)" (* "*") (cast_expression "(byte *****)(iVar16 + 8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "local_c8 = *(int *)(iVar16 + 0xc);" (assignment_expression "local_c8 = *(int *)(iVar16 + 0xc)" (identifier "local_c8") (= "=") (pointer_expression "*(int *)(iVar16 + 0xc)" (* "*") (cast_expression "(int *)(iVar16 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_cc);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_cc)" (identifier "local_d4") (= "=") (cast_expression "(byte *)((int)local_bc + (int)local_cc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_bc + (int)local_cc)" (( "(") (binary_expression "(int)local_bc + (int)local_cc" (cast_expression "(int)local_bc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_bc")) (+ "+") (cast_expression "(int)local_cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_cc"))) () ")")))) (; ";")) (expression_statement "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);" (assignment_expression "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" (identifier "local_d0") (= "=") (binary_expression "local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" (binary_expression "local_b8 + local_c8" (identifier "local_b8") (+ "+") (identifier "local_c8")) (+ "+") (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_cc)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_bc,(uint)local_cc)" (identifier "CARRY4") (argument_list "((uint)local_bc,(uint)local_cc)" (( "(") (cast_expression "(uint)local_bc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_bc")) (, ",") (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc")) () ")")))))) (; ";")) (if_statement "if (local_d9 != '\0') {\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }" (if "if") (parenthesized_expression "(local_d9 != '\0')" (( "(") (binary_expression "local_d9 != '\0'" (identifier "local_d9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_34 = local_c0;\n            local_30 = local_b4;\n            local_c4 = (byte ****)&local_34;\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_fc;\n            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;\n            FUN_000aa900();\n            bVar24 = true;\n            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;\nLAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            local_34 = (byte ****)0x0;\n            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;\n            FUN_000aafe0();\n            goto LAB_000778e3;\n          }" ({ "{") (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" (identifier "local_34") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "local_30 = local_b4;" (assignment_expression "local_30 = local_b4" (identifier "local_30") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" (identifier "local_c4") (= "=") (cast_expression "(byte ****)&local_34" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_34" (& "&") (identifier "local_34")))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_fc")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77a51;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77a51" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x77a51")) (; ";")) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" (identifier "FUN_000aa900") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" (identifier "bVar24") (= "=") (true "true")) (; ";")) (if_statement "if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;" (if "if") (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) == 3)" (( "(") (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) == 3" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" (* "*") (cast_expression "(byte *)(iVar16 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "3")) () ")")) (goto_statement "goto LAB_00077a68;" (goto "goto") (statement_identifier "LAB_00077a68") (; ";"))) (labeled_statement "LAB_000778c8:\n            *(byte *****)(puVar20 + -0xc) = local_c4;" (statement_identifier "LAB_000778c8") (: ":") (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c4")) (; ";"))) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_f8")) (; ";")) (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" (identifier "local_34") (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x778e3;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x778e3" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x778e3")) (; ";")) (expression_statement "FUN_000aafe0();" (call_expression "FUN_000aafe0()" (identifier "FUN_000aafe0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_000778e3;" (goto "goto") (statement_identifier "LAB_000778e3") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" (else "else") (compound_statement "{\n          if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }\n          local_cc = *(byte *****)(iVar16 + 8);\n          local_c8 = *(int *)(iVar16 + 0xc);\n          local_d4 = (byte *)((int)local_bc + (int)local_cc);\n          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);\n          if (local_d9 == '\0') goto LAB_00077980;\n          local_c4 = (byte ****)&local_34;\n          local_34 = (byte ****)0x0;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          local_30 = (byte ***)0x0;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;\n          FUN_000aa900();\n          bVar24 = false;\n          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;\nLAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_f8;\n          local_34 = (byte ****)0xffffffff;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;\n          FUN_000aafe0();\nLAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = local_cc;\n          local_30 = (byte ***)local_c8;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77975;\n          FUN_000ab360();\n          if (!bVar24) goto LAB_00077980;\n        }" ({ "{") (if_statement "if ((byte ****)local_b4 == (byte ****)0xffff) {\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }" (if "if") (parenthesized_expression "((byte ****)local_b4 == (byte ****)0xffff)" (( "(") (binary_expression "(byte ****)local_b4 == (byte ****)0xffff" (cast_expression "(byte ****)local_b4" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4")) (== "==") (cast_expression "(byte ****)0xffff" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffff"))) () ")")) (compound_statement "{\n            ppppbVar11 = (byte ****)local_c0[0xc];\n            if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }\n            *(byte *****)(puVar20 + -8) = ppppbVar3;\n            *(byte *****)(puVar20 + -0xc) = local_c0;\n            *(byte *****)(puVar20 + -0x10) = ppppbVar11;\n            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;\n            local_b4 = (byte ***)FUN_00121c60();\n            goto LAB_000779f0;\n          }" ({ "{") (expression_statement "ppppbVar11 = (byte ****)local_c0[0xc];" (assignment_expression "ppppbVar11 = (byte ****)local_c0[0xc]" (identifier "ppppbVar11") (= "=") (cast_expression "(byte ****)local_c0[0xc]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "local_c0[0xc]" (identifier "local_c0") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if (ppppbVar11 == (byte ****)0x0) {\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }" (if "if") (parenthesized_expression "(ppppbVar11 == (byte ****)0x0)" (( "(") (binary_expression "ppppbVar11 == (byte ****)0x0" (identifier "ppppbVar11") (== "==") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              ppppbVar11 = (byte ****)*local_c0;\n              *(byte *****)(puVar20 + -0x10) = local_c0;\n              pppbVar7 = ppppbVar11[0x1b];\n              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;\n              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();\n              ppppbVar22[0xc] = (byte ***)ppppbVar11;\n            }" ({ "{") (expression_statement "ppppbVar11 = (byte ****)*local_c0;" (assignment_expression "ppppbVar11 = (byte ****)*local_c0" (identifier "ppppbVar11") (= "=") (cast_expression "(byte ****)*local_c0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*local_c0" (* "*") (identifier "local_c0")))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x10) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0x10) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0x10)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x10)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "pppbVar7 = ppppbVar11[0x1b];" (assignment_expression "pppbVar7 = ppppbVar11[0x1b]" (identifier "pppbVar7") (= "=") (subscript_expression "ppppbVar11[0x1b]" (identifier "ppppbVar11") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7816f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7816f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x7816f")) (; ";")) (expression_statement "ppppbVar11 = (byte ****)(*(code *)pppbVar7)();" (assignment_expression "ppppbVar11 = (byte ****)(*(code *)pppbVar7)()" (identifier "ppppbVar11") (= "=") (cast_expression "(byte ****)(*(code *)pppbVar7)()" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(*(code *)pppbVar7)()" (parenthesized_expression "(*(code *)pppbVar7)" (( "(") (pointer_expression "*(code *)pppbVar7" (* "*") (cast_expression "(code *)pppbVar7" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppbVar7"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "ppppbVar22[0xc] = (byte ***)ppppbVar11;" (assignment_expression "ppppbVar22[0xc] = (byte ***)ppppbVar11" (subscript_expression "ppppbVar22[0xc]" (identifier "ppppbVar22") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(byte ***)ppppbVar11" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppbVar11"))) (; ";")) (} "}"))) (expression_statement "*(byte *****)(puVar20 + -8) = ppppbVar3;" (assignment_expression "*(byte *****)(puVar20 + -8) = ppppbVar3" (pointer_expression "*(byte *****)(puVar20 + -8)" (* "*") (cast_expression "(byte *****)(puVar20 + -8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "ppppbVar3")) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x10) = ppppbVar11;" (assignment_expression "*(byte *****)(puVar20 + -0x10) = ppppbVar11" (pointer_expression "*(byte *****)(puVar20 + -0x10)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x10)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "ppppbVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7809f;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7809f" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x7809f")) (; ";")) (expression_statement "local_b4 = (byte ***)FUN_00121c60();" (assignment_expression "local_b4 = (byte ***)FUN_00121c60()" (identifier "local_b4") (= "=") (cast_expression "(byte ***)FUN_00121c60()" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (call_expression "FUN_00121c60()" (identifier "FUN_00121c60") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto LAB_000779f0;" (goto "goto") (statement_identifier "LAB_000779f0") (; ";")) (} "}"))) (expression_statement "local_cc = *(byte *****)(iVar16 + 8);" (assignment_expression "local_cc = *(byte *****)(iVar16 + 8)" (identifier "local_cc") (= "=") (pointer_expression "*(byte *****)(iVar16 + 8)" (* "*") (cast_expression "(byte *****)(iVar16 + 8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(iVar16 + 8)" (( "(") (binary_expression "iVar16 + 8" (identifier "iVar16") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_c8 = *(int *)(iVar16 + 0xc);" (assignment_expression "local_c8 = *(int *)(iVar16 + 0xc)" (identifier "local_c8") (= "=") (pointer_expression "*(int *)(iVar16 + 0xc)" (* "*") (cast_expression "(int *)(iVar16 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0xc)" (( "(") (binary_expression "iVar16 + 0xc" (identifier "iVar16") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_cc);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_cc)" (identifier "local_d4") (= "=") (cast_expression "(byte *)((int)local_bc + (int)local_cc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_bc + (int)local_cc)" (( "(") (binary_expression "(int)local_bc + (int)local_cc" (cast_expression "(int)local_bc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_bc")) (+ "+") (cast_expression "(int)local_cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_cc"))) () ")")))) (; ";")) (expression_statement "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);" (assignment_expression "local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" (identifier "local_d0") (= "=") (binary_expression "local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc)" (binary_expression "local_b8 + local_c8" (identifier "local_b8") (+ "+") (identifier "local_c8")) (+ "+") (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_cc)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_bc,(uint)local_cc)" (identifier "CARRY4") (argument_list "((uint)local_bc,(uint)local_cc)" (( "(") (cast_expression "(uint)local_bc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_bc")) (, ",") (cast_expression "(uint)local_cc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_cc")) () ")")))))) (; ";")) (if_statement "if (local_d9 == '\0') goto LAB_00077980;" (if "if") (parenthesized_expression "(local_d9 == '\0')" (( "(") (binary_expression "local_d9 == '\0'" (identifier "local_d9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00077980;" (goto "goto") (statement_identifier "LAB_00077980") (; ";"))) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" (identifier "local_c4") (= "=") (cast_expression "(byte ****)&local_34" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_34" (& "&") (identifier "local_34")))) (; ";")) (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" (identifier "local_34") (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_fc")) (; ";")) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" (identifier "local_30") (= "=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x778b4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x778b4" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x778b4")) (; ";")) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" (identifier "FUN_000aa900") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (if_statement "if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;" (if "if") (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) != 3)" (( "(") (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) != 3" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" (* "*") (cast_expression "(byte *)(iVar16 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_000778c8;" (goto "goto") (statement_identifier "LAB_000778c8") (; ";"))) (labeled_statement "LAB_00077a68:\n          *(byte *****)(puVar20 + -0xc) = local_c4;" (statement_identifier "LAB_00077a68") (: ":") (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c4")) (; ";"))) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_f8")) (; ";")) (expression_statement "local_34 = (byte ****)0xffffffff;" (assignment_expression "local_34 = (byte ****)0xffffffff" (identifier "local_34") (= "=") (cast_expression "(byte ****)0xffffffff" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77a83;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77a83" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x77a83")) (; ";")) (expression_statement "FUN_000aafe0();" (call_expression "FUN_000aafe0()" (identifier "FUN_000aafe0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_000778e3:\n          *(byte *****)(puVar20 + -0xc) = local_c4;" (statement_identifier "LAB_000778e3") (: ":") (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c4")) (; ";"))) (expression_statement "*(int *)(puVar20 + -0x10) = local_100;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_100" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_100")) (; ";")) (expression_statement "local_34 = local_cc;" (assignment_expression "local_34 = local_cc" (identifier "local_34") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "local_30 = (byte ***)local_c8;" (assignment_expression "local_30 = (byte ***)local_c8" (identifier "local_30") (= "=") (cast_expression "(byte ***)local_c8" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "local_c8"))) (; ";")) (expression_statement "local_2c = local_bc;" (assignment_expression "local_2c = local_bc" (identifier "local_2c") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "local_28 = local_b8;" (assignment_expression "local_28 = local_b8" (identifier "local_28") (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x7791e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x7791e" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x7791e")) (; ";")) (expression_statement "FUN_000ab1b0();" (call_expression "FUN_000ab1b0()" (identifier "FUN_000ab1b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppppbVar23 = (byte *****)*param_2;" (assignment_expression "pppppbVar23 = (byte *****)*param_2" (identifier "pppppbVar23") (= "=") (cast_expression "(byte *****)*param_2" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (if_statement "if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }" (if "if") (parenthesized_expression "(param_2[1] != 0)" (( "(") (binary_expression "param_2[1] != 0" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x78648;\n            FUN_000da200();\n          }" ({ "{") (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c" (pointer_expression "*(int *)(puVar20 + -8)" (* "*") (cast_expression "(int *)(puVar20 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11de3c" (identifier "local_e0") (+ "+") (number_literal "-0x11de3c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11cc44" (identifier "local_e0") (+ "+") (number_literal "-0x11cc44"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78648;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78648" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78648")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" (identifier "local_30") (= "=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(local_f4 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f4 + 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(local_f4 + 4)" (* "*") (cast_expression "(undefined4 **)(local_f4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f4 + 4)" (( "(") (binary_expression "local_f4 + 4" (identifier "local_f4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_34 = (byte ****)pppppbVar23;" (assignment_expression "local_34 = (byte ****)pppppbVar23" (identifier "local_34") (= "=") (cast_expression "(byte ****)pppppbVar23" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar23"))) (; ";")) (if_statement "if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" (if "if") (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f4 + 8))" (( "(") (binary_expression "puVar2 == *(undefined4 **)(local_f4 + 8)" (identifier "puVar2") (== "==") (pointer_expression "*(undefined4 **)(local_f4 + 8)" (* "*") (cast_expression "(undefined4 **)(local_f4 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f4 + 8)" (( "(") (binary_expression "local_f4 + 8" (identifier "local_f4") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x78155;\n            FUN_000aa950();\n          }" ({ "{") (expression_statement "*(byte *****)(puVar20 + -8) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -8) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -8)" (* "*") (cast_expression "(byte *****)(puVar20 + -8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_f4;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f4" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_f4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78155;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78155" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78155")) (; ";")) (expression_statement "FUN_000aa950();" (call_expression "FUN_000aa950()" (identifier "FUN_000aa950") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" (else "else") (compound_statement "{\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" ({ "{") (expression_statement "*puVar2 = pppppbVar23;" (assignment_expression "*puVar2 = pppppbVar23" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "pppppbVar23")) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(local_f4 + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_f4 + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_f4 + 4)" (* "*") (cast_expression "(undefined4 **)(local_f4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f4 + 4)" (( "(") (binary_expression "local_f4 + 4" (identifier "local_f4") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_6c = (byte ****)0x0;" (assignment_expression "local_6c = (byte ****)0x0" (identifier "local_6c") (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0xc) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0xc) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0xc)" (* "*") (cast_expression "(byte ******)(puVar20 + -0xc)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_104;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_104" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_104")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77975;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77975" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x77975")) (; ";")) (expression_statement "FUN_000ab360();" (call_expression "FUN_000ab360()" (identifier "FUN_000ab360") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (!bVar24) goto LAB_00077980;" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (goto_statement "goto LAB_00077980;" (goto "goto") (statement_identifier "LAB_00077980") (; ";"))) (} "}")))) (if_statement "if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }" (if "if") (parenthesized_expression "((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0))))" (( "(") (binary_expression "(((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&\n           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))" (parenthesized_expression "(((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1))" (( "(") (binary_expression "((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&\n            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)" (parenthesized_expression "((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1))" (( "(") (binary_expression "(local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)" (parenthesized_expression "(local_da != '\0')" (( "(") (binary_expression "local_da != '\0'" (identifier "local_da") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar16 + 4) & 0xf) != 1)" (( "(") (binary_expression "(*(byte *)(iVar16 + 4) & 0xf) != 1" (parenthesized_expression "(*(byte *)(iVar16 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar16 + 4) & 0xf" (pointer_expression "*(byte *)(iVar16 + 4)" (* "*") (cast_expression "(byte *)(iVar16 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 4)" (( "(") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)" (( "(") (comma_expression "local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1" (assignment_expression "local_bc = (byte ****)local_c0[0x54]" (identifier "local_bc") (= "=") (cast_expression "(byte ****)local_c0[0x54]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "local_c0[0x54]" (identifier "local_c0") ([ "[") (number_literal "0x54") (] "]")))) (, ",") (binary_expression "((uint)local_bc & 3) != 1" (parenthesized_expression "((uint)local_bc & 3)" (( "(") (binary_expression "(uint)local_bc & 3" (cast_expression "(uint)local_bc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_bc")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "1"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))" (( "(") (parenthesized_expression "(0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0))" (( "(") (binary_expression "0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)" (binary_expression "0x17 < local_d8" (number_literal "0x17") (< "<") (identifier "local_d8")) (|| "||") (parenthesized_expression "((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(0x843f84U >> (local_d8 & 0x1f) & 1) == 0" (parenthesized_expression "(0x843f84U >> (local_d8 & 0x1f) & 1)" (( "(") (binary_expression "0x843f84U >> (local_d8 & 0x1f) & 1" (binary_expression "0x843f84U >> (local_d8 & 0x1f)" (number_literal "0x843f84U") (>> ">>") (parenthesized_expression "(local_d8 & 0x1f)" (( "(") (binary_expression "local_d8 & 0x1f" (identifier "local_d8") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          local_bc = *(byte *****)(local_ec + 0x15c);\n          local_7c = local_c0;\n          local_78 = (uint)*(ushort *)(iVar16 + 6);\n          *(undefined4 *)(puVar20 + -0xc) = 1;\n          *(undefined4 *)(puVar20 + -0x10) = 0;\n          local_9c = (byte ****)((byte *****)local_bc + 0xd);\n          *(byte ******)(puVar20 + -0x14) = &local_9c;\n          *(byte ******)(puVar20 + -0x18) = &local_7c;\n          *(byte *****)(puVar20 + -0x1c) = local_9c;\n          *(undefined1 **)(puVar20 + -0x20) = local_f0;\n          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;\n          FUN_000a8d90();\n          puVar20 = puVar20 + -4;\n        }" ({ "{") (expression_statement "local_bc = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_bc = *(byte *****)(local_ec + 0x15c)" (identifier "local_bc") (= "=") (pointer_expression "*(byte *****)(local_ec + 0x15c)" (* "*") (cast_expression "(byte *****)(local_ec + 0x15c)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(local_ec + 0x15c)" (( "(") (binary_expression "local_ec + 0x15c" (identifier "local_ec") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "local_7c = local_c0;" (assignment_expression "local_7c = local_c0" (identifier "local_7c") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "local_78 = (uint)*(ushort *)(iVar16 + 6);" (assignment_expression "local_78 = (uint)*(ushort *)(iVar16 + 6)" (identifier "local_78") (= "=") (binary_expression "(uint)*(ushort *)(iVar16 + 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar16 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 6)" (( "(") (binary_expression "iVar16 + 6" (identifier "iVar16") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_9c = (byte ****)((byte *****)local_bc + 0xd);" (assignment_expression "local_9c = (byte ****)((byte *****)local_bc + 0xd)" (identifier "local_9c") (= "=") (cast_expression "(byte ****)((byte *****)local_bc + 0xd)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((byte *****)local_bc + 0xd)" (( "(") (binary_expression "(byte *****)local_bc + 0xd" (cast_expression "(byte *****)local_bc" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_bc")) (+ "+") (number_literal "0xd")) () ")")))) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_9c;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_9c" (pointer_expression "*(byte ******)(puVar20 + -0x14)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x14)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_9c" (& "&") (identifier "local_9c"))) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_7c;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_7c" (pointer_expression "*(byte ******)(puVar20 + -0x18)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x18)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_9c;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_9c" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x1c)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_f0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77ddf;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77ddf" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x77ddf")) (; ";")) (expression_statement "FUN_000a8d90();" (call_expression "FUN_000a8d90()" (identifier "FUN_000a8d90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" (identifier "puVar20") (= "=") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" (identifier "puVar19") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (param_1 != (byte ****)local_b4) {\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(param_1 != (byte ****)local_b4)" (( "(") (binary_expression "param_1 != (byte ****)local_b4" (identifier "param_1") (!= "!=") (cast_expression "(byte ****)local_b4" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_b4"))) () ")")) (compound_statement "{\n          local_cc = local_c0;\nLAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }\n          puVar19 = puVar20;\n          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "local_cc = local_c0;" (assignment_expression "local_cc = local_c0" (identifier "local_cc") (= "=") (identifier "local_c0")) (; ";")) (labeled_statement "LAB_00077afb:\n          if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" (statement_identifier "LAB_00077afb") (: ":") (if_statement "if (*(int *)(*(int *)local_e4 + 8) == 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" (if "if") (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)local_e4 + 8) == 0" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" (* "*") (cast_expression "(int *)(*(int *)local_e4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)local_e4 + 8)" (( "(") (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;\n            *(undefined4 *)(puVar20 + -0xc) = 0x5c;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;\n            FUN_000da200();\n          }" ({ "{") (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11dc58;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11dc58" (pointer_expression "*(int *)(puVar20 + -8)" (* "*") (cast_expression "(int *)(puVar20 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11dc58" (identifier "local_e0") (+ "+") (number_literal "-0x11dc58"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x131d93" (identifier "local_e0") (+ "+") (number_literal "-0x131d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785c7;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785c7" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x785c7")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" (identifier "puVar19") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)local_e4 + 8) + 0x18b1)" (( "(") (binary_expression "*(int *)(*(int *)local_e4 + 8) + 0x18b1" (pointer_expression "*(int *)(*(int *)local_e4 + 8)" (* "*") (cast_expression "(int *)(*(int *)local_e4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)local_e4 + 8)" (( "(") (binary_expression "*(int *)local_e4 + 8" (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4"))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x18b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            pppppbVar23 = *(byte ******)(local_ec + 0x158);\n            local_74 = local_c0;\n            local_70 = (byte ***)param_1;\n            local_6c = local_cc;\n            local_68 = local_b4;\n            pppppbVar8 = (byte *****)pppppbVar23[6];\n            pppppbVar14 = pppppbVar23 + 5;\n            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }\n            local_90 = (byte ****)(pppppbVar15 + 6);\n            *(undefined4 *)(puVar20 + -0xc) = 1;\n            *(undefined4 *)(puVar20 + -0x10) = 0;\n            *(byte *****)(puVar20 + -0x14) = local_110;\n            *(byte ******)(puVar20 + -0x18) = &local_6c;\n            *(byte *****)(puVar20 + -0x1c) = local_90;\n            *(undefined1 **)(puVar20 + -0x20) = local_f0;\n            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;\n            FUN_000a8cd0();\n            iVar16 = local_ec;\n            piVar4 = *(int **)(*(int *)local_e4 + 0xc);\n            if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }\n            iVar5 = *piVar4;\n            *(int *)(puVar20 + -8) = local_d0;\n            *(byte **)(puVar20 + -0xc) = local_d4;\n            *(byte ****)(puVar20 + -0x10) = local_b4;\n            *(byte *****)(puVar20 + -0x14) = local_cc;\n            *(byte *****)(puVar20 + -0x18) = param_1;\n            *(byte *****)(puVar20 + -0x1c) = local_c0;\n            *(int *)(puVar20 + -0x20) = local_ec;\n            *(int **)(puVar20 + -0x24) = piVar4;\n            pcVar6 = *(code **)(iVar5 + 0x104);\n            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;\n            (*pcVar6)();\n            pppbVar7 = local_e8;\n            puVar19 = puVar20 + -4;\n            if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "pppppbVar23 = *(byte ******)(local_ec + 0x158);" (assignment_expression "pppppbVar23 = *(byte ******)(local_ec + 0x158)" (identifier "pppppbVar23") (= "=") (pointer_expression "*(byte ******)(local_ec + 0x158)" (* "*") (cast_expression "(byte ******)(local_ec + 0x158)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(local_ec + 0x158)" (( "(") (binary_expression "local_ec + 0x158" (identifier "local_ec") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "local_74 = local_c0;" (assignment_expression "local_74 = local_c0" (identifier "local_74") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "local_70 = (byte ***)param_1;" (assignment_expression "local_70 = (byte ***)param_1" (identifier "local_70") (= "=") (cast_expression "(byte ***)param_1" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "param_1"))) (; ";")) (expression_statement "local_6c = local_cc;" (assignment_expression "local_6c = local_cc" (identifier "local_6c") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "local_68 = local_b4;" (assignment_expression "local_68 = local_b4" (identifier "local_68") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "pppppbVar8 = (byte *****)pppppbVar23[6];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar23[6]" (identifier "pppppbVar8") (= "=") (cast_expression "(byte *****)pppppbVar23[6]" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppbVar23[6]" (identifier "pppppbVar23") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "pppppbVar14 = pppppbVar23 + 5;" (assignment_expression "pppppbVar14 = pppppbVar23 + 5" (identifier "pppppbVar14") (= "=") (binary_expression "pppppbVar23 + 5" (identifier "pppppbVar23") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }\n            else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" (if "if") (parenthesized_expression "((byte *****)pppppbVar23[6] == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)pppppbVar23[6] == (byte *****)0x0" (cast_expression "(byte *****)pppppbVar23[6]" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppbVar23[6]" (identifier "pppppbVar23") ([ "[") (number_literal "6") (] "]"))) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00077ba0:\n              local_8c = (byte ****)&local_74;\n              *(byte ******)(puVar20 + -0x10) = &local_8c;\n              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;\n              FUN_00068840();\n              pppppbVar15 = (byte *****)local_a8;\n            }" ({ "{") (labeled_statement "LAB_00077ba0:\n              local_8c = (byte ****)&local_74;" (statement_identifier "LAB_00077ba0") (: ":") (expression_statement "local_8c = (byte ****)&local_74;" (assignment_expression "local_8c = (byte ****)&local_74" (identifier "local_8c") (= "=") (cast_expression "(byte ****)&local_74" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_74" (& "&") (identifier "local_74")))) (; ";"))) (expression_statement "*(byte ******)(puVar20 + -0x10) = &local_8c;" (assignment_expression "*(byte ******)(puVar20 + -0x10) = &local_8c" (pointer_expression "*(byte ******)(puVar20 + -0x10)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x10)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_8c" (& "&") (identifier "local_8c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77bc1;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77bc1" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x77bc1")) (; ";")) (expression_statement "FUN_00068840();" (call_expression "FUN_00068840()" (identifier "FUN_00068840") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppppbVar15 = (byte *****)local_a8;" (assignment_expression "pppppbVar15 = (byte *****)local_a8" (identifier "pppppbVar15") (= "=") (cast_expression "(byte *****)local_a8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_a8"))) (; ";")) (} "}")) (else_clause "else {\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" (else "else") (compound_statement "{\n              do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;\n              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;\n            }" ({ "{") (do_statement "do {\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);" (do "do") (compound_statement "{\n                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }\n                pppppbVar8 = (byte *****)pppppbVar15[2];\n                pppppbVar14 = pppppbVar15;\n              }" ({ "{") (while_statement "while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }" (while "while") (parenthesized_expression "((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))))" (( "(") (parenthesized_expression "(pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))" (( "(") (comma_expression "pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (assignment_expression "pppppbVar15 = pppppbVar8" (identifier "pppppbVar15") (= "=") (identifier "pppppbVar8")) (, ",") (binary_expression "pppppbVar15[4] < local_c0 ||\n                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (binary_expression "pppppbVar15[4] < local_c0" (subscript_expression "pppppbVar15[4]" (identifier "pppppbVar15") ([ "[") (number_literal "4") (] "]")) (< "<") (identifier "local_c0")) (|| "||") (parenthesized_expression "((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (( "(") (parenthesized_expression "(local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))" (( "(") (binary_expression "local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)" (binary_expression "local_c0 == pppppbVar15[4]" (identifier "local_c0") (== "==") (subscript_expression "pppppbVar15[4]" (identifier "pppppbVar15") ([ "[") (number_literal "4") (] "]"))) (&& "&&") (parenthesized_expression "(pppppbVar15[5] < param_1)" (( "(") (binary_expression "pppppbVar15[5] < param_1" (subscript_expression "pppppbVar15[5]" (identifier "pppppbVar15") ([ "[") (number_literal "5") (] "]")) (< "<") (identifier "param_1")) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                  pppppbVar1 = pppppbVar15 + 3;\n                  pppppbVar8 = (byte *****)*pppppbVar1;\n                  pppppbVar15 = pppppbVar14;\n                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;\n                }" ({ "{") (expression_statement "pppppbVar1 = pppppbVar15 + 3;" (assignment_expression "pppppbVar1 = pppppbVar15 + 3" (identifier "pppppbVar1") (= "=") (binary_expression "pppppbVar15 + 3" (identifier "pppppbVar15") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pppppbVar8 = (byte *****)*pppppbVar1;" (assignment_expression "pppppbVar8 = (byte *****)*pppppbVar1" (identifier "pppppbVar8") (= "=") (cast_expression "(byte *****)*pppppbVar1" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*pppppbVar1" (* "*") (identifier "pppppbVar1")))) (; ";")) (expression_statement "pppppbVar15 = pppppbVar14;" (assignment_expression "pppppbVar15 = pppppbVar14" (identifier "pppppbVar15") (= "=") (identifier "pppppbVar14")) (; ";")) (if_statement "if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;" (if "if") (parenthesized_expression "((byte *****)*pppppbVar1 == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)*pppppbVar1 == (byte *****)0x0" (cast_expression "(byte *****)*pppppbVar1" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*pppppbVar1" (* "*") (identifier "pppppbVar1"))) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00077b7c;" (goto "goto") (statement_identifier "LAB_00077b7c") (; ";"))) (} "}"))) (expression_statement "pppppbVar8 = (byte *****)pppppbVar15[2];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar15[2]" (identifier "pppppbVar8") (= "=") (cast_expression "(byte *****)pppppbVar15[2]" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppbVar15[2]" (identifier "pppppbVar15") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pppppbVar14 = pppppbVar15;" (assignment_expression "pppppbVar14 = pppppbVar15" (identifier "pppppbVar14") (= "=") (identifier "pppppbVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((byte *****)pppppbVar15[2] != (byte *****)0x0)" (( "(") (binary_expression "(byte *****)pppppbVar15[2] != (byte *****)0x0" (cast_expression "(byte *****)pppppbVar15[2]" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppbVar15[2]" (identifier "pppppbVar15") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (labeled_statement "LAB_00077b7c:\n              local_bc = (byte ****)pppppbVar23;" (statement_identifier "LAB_00077b7c") (: ":") (expression_statement "local_bc = (byte ****)pppppbVar23;" (assignment_expression "local_bc = (byte ****)pppppbVar23" (identifier "local_bc") (= "=") (cast_expression "(byte ****)pppppbVar23" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar23"))) (; ";"))) (if_statement "if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;" (if "if") (parenthesized_expression "(((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))" (( "(") (binary_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" (parenthesized_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4]))" (( "(") (binary_expression "(pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])" (parenthesized_expression "(pppppbVar15 == pppppbVar23 + 5)" (( "(") (binary_expression "pppppbVar15 == pppppbVar23 + 5" (identifier "pppppbVar15") (== "==") (binary_expression "pppppbVar23 + 5" (identifier "pppppbVar23") (+ "+") (number_literal "5"))) () ")")) (|| "||") (parenthesized_expression "(local_c0 < pppppbVar15[4])" (( "(") (binary_expression "local_c0 < pppppbVar15[4]" (identifier "local_c0") (< "<") (subscript_expression "pppppbVar15[4]" (identifier "pppppbVar15") ([ "[") (number_literal "4") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" (( "(") (parenthesized_expression "(local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))" (( "(") (binary_expression "local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])" (binary_expression "local_c0 == pppppbVar15[4]" (identifier "local_c0") (== "==") (subscript_expression "pppppbVar15[4]" (identifier "pppppbVar15") ([ "[") (number_literal "4") (] "]"))) (&& "&&") (parenthesized_expression "(param_1 < pppppbVar15[5])" (( "(") (binary_expression "param_1 < pppppbVar15[5]" (identifier "param_1") (< "<") (subscript_expression "pppppbVar15[5]" (identifier "pppppbVar15") ([ "[") (number_literal "5") (] "]"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00077ba0;" (goto "goto") (statement_identifier "LAB_00077ba0") (; ";"))) (} "}")))) (expression_statement "local_90 = (byte ****)(pppppbVar15 + 6);" (assignment_expression "local_90 = (byte ****)(pppppbVar15 + 6)" (identifier "local_90") (= "=") (cast_expression "(byte ****)(pppppbVar15 + 6)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(pppppbVar15 + 6)" (( "(") (binary_expression "pppppbVar15 + 6" (identifier "pppppbVar15") (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_110;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_110" (pointer_expression "*(byte *****)(puVar20 + -0x14)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x14)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_110")) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0x18)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x18)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_90;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_90" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x1c)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_f0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77bf0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77bf0" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x77bf0")) (; ";")) (expression_statement "FUN_000a8cd0();" (call_expression "FUN_000a8cd0()" (identifier "FUN_000a8cd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar16 = local_ec;" (assignment_expression "iVar16 = local_ec" (identifier "iVar16") (= "=") (identifier "local_ec")) (; ";")) (expression_statement "piVar4 = *(int **)(*(int *)local_e4 + 0xc);" (assignment_expression "piVar4 = *(int **)(*(int *)local_e4 + 0xc)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(*(int *)local_e4 + 0xc)" (* "*") (cast_expression "(int **)(*(int *)local_e4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)local_e4 + 0xc)" (( "(") (binary_expression "*(int *)local_e4 + 0xc" (pointer_expression "*(int *)local_e4" (* "*") (cast_expression "(int *)local_e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_e4"))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;\n              *(undefined4 *)(puVar20 + -0x10) = 0x73;\n              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;\n                    \n              *(undefined4 *)(puVar20 + -0x18) = 0x78627;\n              FUN_000da200();\n            }" ({ "{") (expression_statement "*(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;" (assignment_expression "*(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8" (pointer_expression "*(int *)(puVar20 + -0xc)" (* "*") (cast_expression "(int *)(puVar20 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11dfa8" (identifier "local_e0") (+ "+") (number_literal "-0x11dfa8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0x73;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0x73" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x73")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;" (assignment_expression "*(int *)(puVar20 + -0x14) = local_e0 + -0x131d93" (pointer_expression "*(int *)(puVar20 + -0x14)" (* "*") (cast_expression "(int *)(puVar20 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "local_e0 + -0x131d93" (identifier "local_e0") (+ "+") (number_literal "-0x131d93"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x78627;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x78627" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x78627")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = *piVar4;" (assignment_expression "iVar5 = *piVar4" (identifier "iVar5") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "*(int *)(puVar20 + -8) = local_d0;" (assignment_expression "*(int *)(puVar20 + -8) = local_d0" (pointer_expression "*(int *)(puVar20 + -8)" (* "*") (cast_expression "(int *)(puVar20 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_d0")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0xc) = local_d4;" (assignment_expression "*(byte **)(puVar20 + -0xc) = local_d4" (pointer_expression "*(byte **)(puVar20 + -0xc)" (* "*") (cast_expression "(byte **)(puVar20 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_d4")) (; ";")) (expression_statement "*(byte ****)(puVar20 + -0x10) = local_b4;" (assignment_expression "*(byte ****)(puVar20 + -0x10) = local_b4" (pointer_expression "*(byte ****)(puVar20 + -0x10)" (* "*") (cast_expression "(byte ****)(puVar20 + -0x10)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_b4")) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_cc;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_cc" (pointer_expression "*(byte *****)(puVar20 + -0x14)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x14)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_cc")) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x18) = param_1;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = param_1" (pointer_expression "*(byte *****)(puVar20 + -0x18)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x18)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_c0;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_c0" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x1c)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x20) = local_ec;" (assignment_expression "*(int *)(puVar20 + -0x20) = local_ec" (pointer_expression "*(int *)(puVar20 + -0x20)" (* "*") (cast_expression "(int *)(puVar20 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_ec")) (; ";")) (expression_statement "*(int **)(puVar20 + -0x24) = piVar4;" (assignment_expression "*(int **)(puVar20 + -0x24) = piVar4" (pointer_expression "*(int **)(puVar20 + -0x24)" (* "*") (cast_expression "(int **)(puVar20 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "pcVar6 = *(code **)(iVar5 + 0x104);" (assignment_expression "pcVar6 = *(code **)(iVar5 + 0x104)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(iVar5 + 0x104)" (* "*") (cast_expression "(code **)(iVar5 + 0x104)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x104)" (( "(") (binary_expression "iVar5 + 0x104" (identifier "iVar5") (+ "+") (number_literal "0x104")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x28) = 0x77c37;" (assignment_expression "*(undefined4 *)(puVar20 + -0x28) = 0x77c37" (pointer_expression "*(undefined4 *)(puVar20 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x28)" (( "(") (binary_expression "puVar20 + -0x28" (identifier "puVar20") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (number_literal "0x77c37")) (; ";")) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppbVar7 = local_e8;" (assignment_expression "pppbVar7 = local_e8" (identifier "pppbVar7") (= "=") (identifier "local_e8")) (; ";")) (expression_statement "puVar19 = puVar20 + -4;" (assignment_expression "puVar19 = puVar20 + -4" (identifier "puVar19") (= "=") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if ((byte ****)local_e8 != (byte ****)0x0) {\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }" (if "if") (parenthesized_expression "((byte ****)local_e8 != (byte ****)0x0)" (( "(") (binary_expression "(byte ****)local_e8 != (byte ****)0x0" (cast_expression "(byte ****)local_e8" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_e8")) (!= "!=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar16 = *(int *)(iVar16 + 0x158);\n              local_bc = (byte ****)&local_2c;\n              *(byte ****)(puVar20 + -0x14) = local_e8;\n              local_c4 = (byte ****)&local_34;\n              local_34 = local_bc;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;\n              sVar10 = strlen(*(char **)(puVar20 + -0x14));\n              ppppbVar3 = local_c4;\n              *(undefined4 *)(puVar20 + -8) = 0;\n              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);\n              *(byte ****)(puVar20 + -0x10) = pppbVar7;\n              *(byte *****)(puVar20 + -0x14) = local_c4;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;\n              FUN_000a8880();\n              *(byte *****)(puVar20 + -0xc) = ppppbVar3;\n              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;\n              *(byte ******)(puVar20 + -0x14) = &local_ac;\n              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;\n              FUN_000aaaa0();\n              ppppbVar3 = local_ac;\n              if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }\n              pppppbVar23 = *(byte ******)(local_ec + 0x158);\n              puVar19 = puVar20 + -8;\n              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }\n            }" ({ "{") (expression_statement "iVar16 = *(int *)(iVar16 + 0x158);" (assignment_expression "iVar16 = *(int *)(iVar16 + 0x158)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar16 + 0x158)" (* "*") (cast_expression "(int *)(iVar16 + 0x158)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x158)" (( "(") (binary_expression "iVar16 + 0x158" (identifier "iVar16") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "local_bc = (byte ****)&local_2c;" (assignment_expression "local_bc = (byte ****)&local_2c" (identifier "local_bc") (= "=") (cast_expression "(byte ****)&local_2c" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")))) (; ";")) (expression_statement "*(byte ****)(puVar20 + -0x14) = local_e8;" (assignment_expression "*(byte ****)(puVar20 + -0x14) = local_e8" (pointer_expression "*(byte ****)(puVar20 + -0x14)" (* "*") (cast_expression "(byte ****)(puVar20 + -0x14)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_e8")) (; ";")) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" (identifier "local_c4") (= "=") (cast_expression "(byte ****)&local_34" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_34" (& "&") (identifier "local_34")))) (; ";")) (expression_statement "local_34 = local_bc;" (assignment_expression "local_34 = local_bc" (identifier "local_34") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c74;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c74" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x77c74")) (; ";")) (expression_statement "sVar10 = strlen(*(char **)(puVar20 + -0x14));" (assignment_expression "sVar10 = strlen(*(char **)(puVar20 + -0x14))" (identifier "sVar10") (= "=") (call_expression "strlen(*(char **)(puVar20 + -0x14))" (identifier "strlen") (argument_list "(*(char **)(puVar20 + -0x14))" (( "(") (pointer_expression "*(char **)(puVar20 + -0x14)" (* "*") (cast_expression "(char **)(puVar20 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "ppppbVar3 = local_c4;" (assignment_expression "ppppbVar3 = local_c4" (identifier "ppppbVar3") (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);" (assignment_expression "*(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10)" (pointer_expression "*(byte **)(puVar20 + -0xc)" (* "*") (cast_expression "(byte **)(puVar20 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (cast_expression "(byte *)((int)pppbVar7 + sVar10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppbVar7 + sVar10)" (( "(") (binary_expression "(int)pppbVar7 + sVar10" (cast_expression "(int)pppbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppbVar7")) (+ "+") (identifier "sVar10")) () ")")))) (; ";")) (expression_statement "*(byte ****)(puVar20 + -0x10) = pppbVar7;" (assignment_expression "*(byte ****)(puVar20 + -0x10) = pppbVar7" (pointer_expression "*(byte ****)(puVar20 + -0x10)" (* "*") (cast_expression "(byte ****)(puVar20 + -0x10)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pppbVar7")) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x14) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0x14) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0x14)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x14)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c89;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c89" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x77c89")) (; ";")) (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" (identifier "FUN_000a8880") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0xc) = ppppbVar3;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = ppppbVar3" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "ppppbVar3")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = iVar16 + 0x44;" (assignment_expression "*(int *)(puVar20 + -0x10) = iVar16 + 0x44" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "iVar16 + 0x44" (identifier "iVar16") (+ "+") (number_literal "0x44"))) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_ac;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_ac" (pointer_expression "*(byte ******)(puVar20 + -0x14)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x14)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_ac" (& "&") (identifier "local_ac"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x18) = 0x77c9d;" (assignment_expression "*(undefined4 *)(puVar20 + -0x18) = 0x77c9d" (pointer_expression "*(undefined4 *)(puVar20 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x77c9d")) (; ";")) (expression_statement "FUN_000aaaa0();" (call_expression "FUN_000aaaa0()" (identifier "FUN_000aaaa0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppppbVar3 = local_ac;" (assignment_expression "ppppbVar3 = local_ac" (identifier "ppppbVar3") (= "=") (identifier "local_ac")) (; ";")) (if_statement "if (local_34 != local_bc) {\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }" (if "if") (parenthesized_expression "(local_34 != local_bc)" (( "(") (binary_expression "local_34 != local_bc" (identifier "local_34") (!= "!=") (identifier "local_bc")) () ")")) (compound_statement "{\n                *(byte *****)(puVar20 + -0x18) = local_34;\n                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;\n                FUN_00248220();\n              }" ({ "{") (expression_statement "*(byte *****)(puVar20 + -0x18) = local_34;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = local_34" (pointer_expression "*(byte *****)(puVar20 + -0x18)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x18)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 0x77cc0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x77cc0")) (; ";")) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" (identifier "FUN_00248220") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pppppbVar23 = *(byte ******)(local_ec + 0x158);" (assignment_expression "pppppbVar23 = *(byte ******)(local_ec + 0x158)" (identifier "pppppbVar23") (= "=") (pointer_expression "*(byte ******)(local_ec + 0x158)" (* "*") (cast_expression "(byte ******)(local_ec + 0x158)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(local_ec + 0x158)" (( "(") (binary_expression "local_ec + 0x158" (identifier "local_ec") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "puVar19 = puVar20 + -8;" (assignment_expression "puVar19 = puVar20 + -8" (identifier "puVar19") (= "=") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8"))) (; ";")) (if_statement "if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }" (if "if") (parenthesized_expression "((byte *****)ppppbVar3 != pppppbVar23 + 0x12)" (( "(") (binary_expression "(byte *****)ppppbVar3 != pppppbVar23 + 0x12" (cast_expression "(byte *****)ppppbVar3" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbVar3")) (!= "!=") (binary_expression "pppppbVar23 + 0x12" (identifier "pppppbVar23") (+ "+") (number_literal "0x12"))) () ")")) (compound_statement "{\n                local_30 = (byte ***)param_1;\n                local_34 = local_c0;\n                pppppbVar8 = (byte *****)pppppbVar23[6];\n                pppppbVar14 = pppppbVar23 + 5;\n                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }\n                puVar19 = puVar20 + -8;\n                puVar20 = puVar20 + -8;\n                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }\n              }" ({ "{") (expression_statement "local_30 = (byte ***)param_1;" (assignment_expression "local_30 = (byte ***)param_1" (identifier "local_30") (= "=") (cast_expression "(byte ***)param_1" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "param_1"))) (; ";")) (expression_statement "local_34 = local_c0;" (assignment_expression "local_34 = local_c0" (identifier "local_34") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "pppppbVar8 = (byte *****)pppppbVar23[6];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar23[6]" (identifier "pppppbVar8") (= "=") (cast_expression "(byte *****)pppppbVar23[6]" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppbVar23[6]" (identifier "pppppbVar23") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "pppppbVar14 = pppppbVar23 + 5;" (assignment_expression "pppppbVar14 = pppppbVar23 + 5" (identifier "pppppbVar14") (= "=") (binary_expression "pppppbVar23 + 5" (identifier "pppppbVar23") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }\n                else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" (if "if") (parenthesized_expression "((byte *****)pppppbVar23[6] == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)pppppbVar23[6] == (byte *****)0x0" (cast_expression "(byte *****)pppppbVar23[6]" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppbVar23[6]" (identifier "pppppbVar23") ([ "[") (number_literal "6") (] "]"))) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;\n                  local_88 = local_c4;\n                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;\n                  FUN_00068840();\n                  pppppbVar15 = (byte *****)local_a8;\n                }" ({ "{") (labeled_statement "LAB_00078190:\n                  *(byte ******)(puVar20 + -0x18) = &local_88;" (statement_identifier "LAB_00078190") (: ":") (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_88;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_88" (pointer_expression "*(byte ******)(puVar20 + -0x18)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x18)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (; ";"))) (expression_statement "local_88 = local_c4;" (assignment_expression "local_88 = local_c4" (identifier "local_88") (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x1c) = 0x781b4;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1c) = 0x781b4" (pointer_expression "*(undefined4 *)(puVar20 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0x781b4")) (; ";")) (expression_statement "FUN_00068840();" (call_expression "FUN_00068840()" (identifier "FUN_00068840") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppppbVar15 = (byte *****)local_a8;" (assignment_expression "pppppbVar15 = (byte *****)local_a8" (identifier "pppppbVar15") (= "=") (cast_expression "(byte *****)local_a8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_a8"))) (; ";")) (} "}")) (else_clause "else {\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" (else "else") (compound_statement "{\n                  do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);\nLAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;\n                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;\n                }" ({ "{") (do_statement "do {\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);" (do "do") (compound_statement "{\n                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }\n                    pppppbVar8 = (byte *****)pppppbVar15[2];\n                    pppppbVar14 = pppppbVar15;\n                  }" ({ "{") (while_statement "while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }" (while "while") (parenthesized_expression "((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))))" (( "(") (parenthesized_expression "(pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))" (( "(") (comma_expression "pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (assignment_expression "pppppbVar15 = pppppbVar8" (identifier "pppppbVar15") (= "=") (identifier "pppppbVar8")) (, ",") (binary_expression "pppppbVar15[4] < local_c0 ||\n                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (binary_expression "pppppbVar15[4] < local_c0" (subscript_expression "pppppbVar15[4]" (identifier "pppppbVar15") ([ "[") (number_literal "4") (] "]")) (< "<") (identifier "local_c0")) (|| "||") (parenthesized_expression "((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)))" (( "(") (parenthesized_expression "(local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))" (( "(") (binary_expression "local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1)" (binary_expression "local_c0 == pppppbVar15[4]" (identifier "local_c0") (== "==") (subscript_expression "pppppbVar15[4]" (identifier "pppppbVar15") ([ "[") (number_literal "4") (] "]"))) (&& "&&") (parenthesized_expression "(pppppbVar15[5] < param_1)" (( "(") (binary_expression "pppppbVar15[5] < param_1" (subscript_expression "pppppbVar15[5]" (identifier "pppppbVar15") ([ "[") (number_literal "5") (] "]")) (< "<") (identifier "param_1")) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\n                      pppppbVar1 = pppppbVar15 + 3;\n                      pppppbVar8 = (byte *****)*pppppbVar1;\n                      pppppbVar15 = pppppbVar14;\n                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;\n                    }" ({ "{") (expression_statement "pppppbVar1 = pppppbVar15 + 3;" (assignment_expression "pppppbVar1 = pppppbVar15 + 3" (identifier "pppppbVar1") (= "=") (binary_expression "pppppbVar15 + 3" (identifier "pppppbVar15") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pppppbVar8 = (byte *****)*pppppbVar1;" (assignment_expression "pppppbVar8 = (byte *****)*pppppbVar1" (identifier "pppppbVar8") (= "=") (cast_expression "(byte *****)*pppppbVar1" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*pppppbVar1" (* "*") (identifier "pppppbVar1")))) (; ";")) (expression_statement "pppppbVar15 = pppppbVar14;" (assignment_expression "pppppbVar15 = pppppbVar14" (identifier "pppppbVar15") (= "=") (identifier "pppppbVar14")) (; ";")) (if_statement "if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;" (if "if") (parenthesized_expression "((byte *****)*pppppbVar1 == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)*pppppbVar1 == (byte *****)0x0" (cast_expression "(byte *****)*pppppbVar1" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*pppppbVar1" (* "*") (identifier "pppppbVar1"))) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00077d27;" (goto "goto") (statement_identifier "LAB_00077d27") (; ";"))) (} "}"))) (expression_statement "pppppbVar8 = (byte *****)pppppbVar15[2];" (assignment_expression "pppppbVar8 = (byte *****)pppppbVar15[2]" (identifier "pppppbVar8") (= "=") (cast_expression "(byte *****)pppppbVar15[2]" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppbVar15[2]" (identifier "pppppbVar15") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pppppbVar14 = pppppbVar15;" (assignment_expression "pppppbVar14 = pppppbVar15" (identifier "pppppbVar14") (= "=") (identifier "pppppbVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((byte *****)pppppbVar15[2] != (byte *****)0x0)" (( "(") (binary_expression "(byte *****)pppppbVar15[2] != (byte *****)0x0" (cast_expression "(byte *****)pppppbVar15[2]" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (subscript_expression "pppppbVar15[2]" (identifier "pppppbVar15") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (labeled_statement "LAB_00077d27:\n                  local_bc = (byte ****)pppppbVar23;" (statement_identifier "LAB_00077d27") (: ":") (expression_statement "local_bc = (byte ****)pppppbVar23;" (assignment_expression "local_bc = (byte ****)pppppbVar23" (identifier "local_bc") (= "=") (cast_expression "(byte ****)pppppbVar23" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar23"))) (; ";"))) (if_statement "if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))\n                  goto LAB_00078190;" (if "if") (parenthesized_expression "(((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))" (( "(") (binary_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||\n                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" (parenthesized_expression "((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4]))" (( "(") (binary_expression "(pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])" (parenthesized_expression "(pppppbVar15 == pppppbVar23 + 5)" (( "(") (binary_expression "pppppbVar15 == pppppbVar23 + 5" (identifier "pppppbVar15") (== "==") (binary_expression "pppppbVar23 + 5" (identifier "pppppbVar23") (+ "+") (number_literal "5"))) () ")")) (|| "||") (parenthesized_expression "(local_c0 < pppppbVar15[4])" (( "(") (binary_expression "local_c0 < pppppbVar15[4]" (identifier "local_c0") (< "<") (subscript_expression "pppppbVar15[4]" (identifier "pppppbVar15") ([ "[") (number_literal "4") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))" (( "(") (parenthesized_expression "(local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))" (( "(") (binary_expression "local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])" (binary_expression "local_c0 == pppppbVar15[4]" (identifier "local_c0") (== "==") (subscript_expression "pppppbVar15[4]" (identifier "pppppbVar15") ([ "[") (number_literal "4") (] "]"))) (&& "&&") (parenthesized_expression "(param_1 < pppppbVar15[5])" (( "(") (binary_expression "param_1 < pppppbVar15[5]" (identifier "param_1") (< "<") (subscript_expression "pppppbVar15[5]" (identifier "pppppbVar15") ([ "[") (number_literal "5") (] "]"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00078190;" (goto "goto") (statement_identifier "LAB_00078190") (; ";"))) (} "}")))) (expression_statement "puVar19 = puVar20 + -8;" (assignment_expression "puVar19 = puVar20 + -8" (identifier "puVar19") (= "=") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "puVar20 = puVar20 + -8;" (assignment_expression "puVar20 = puVar20 + -8" (identifier "puVar20") (= "=") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8"))) (; ";")) (for_statement "for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;\n                    ppppbVar3 = (byte ****)*ppppbVar3) {\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }" (for "for") (( "(") (assignment_expression "ppppbVar3 = (byte ****)ppppbVar3[0xc]" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)ppppbVar3[0xc]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppbVar3[0xc]" (identifier "ppppbVar3") ([ "[") (number_literal "0xc") (] "]")))) (; ";") (binary_expression "ppppbVar3 != (byte ****)0x0" (identifier "ppppbVar3") (!= "!=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "ppppbVar3 = (byte ****)*ppppbVar3" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)*ppppbVar3" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*ppppbVar3" (* "*") (identifier "ppppbVar3")))) () ")") (compound_statement "{\n                  *(undefined4 *)(puVar20 + -0xc) = 1;\n                  *(undefined4 *)(puVar20 + -0x10) = 0;\n                  *(byte ******)(puVar20 + -0x14) = &local_94;\n                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;\n                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;\n                  *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;\n                  local_94 = (byte ****)(pppppbVar15 + 6);\n                  FUN_000a8cd0();\n                  puVar19 = puVar20 + -4;\n                  puVar20 = puVar20 + -4;\n                }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_94;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_94" (pointer_expression "*(byte ******)(puVar20 + -0x14)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x14)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_94" (& "&") (identifier "local_94"))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;" (assignment_expression "*(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1" (pointer_expression "*(byte *****)(puVar20 + -0x18)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x18)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "ppppbVar3 + 1" (identifier "ppppbVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;" (assignment_expression "*(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6" (pointer_expression "*(byte ******)(puVar20 + -0x1c)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x1c)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (binary_expression "pppppbVar15 + 6" (identifier "pppppbVar15") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_f0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x77d7e;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x77d7e" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x77d7e")) (; ";")) (expression_statement "local_94 = (byte ****)(pppppbVar15 + 6);" (assignment_expression "local_94 = (byte ****)(pppppbVar15 + 6)" (identifier "local_94") (= "=") (cast_expression "(byte ****)(pppppbVar15 + 6)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(pppppbVar15 + 6)" (( "(") (binary_expression "pppppbVar15 + 6" (identifier "pppppbVar15") (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "FUN_000a8cd0();" (call_expression "FUN_000a8cd0()" (identifier "FUN_000a8cd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar19 = puVar20 + -4;" (assignment_expression "puVar19 = puVar20 + -4" (identifier "puVar19") (= "=") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" (identifier "puVar20") (= "=") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" (else "else") (compound_statement "{\n        if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }\n        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];\n        local_b4 = local_c0[0x30];\n        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }\n        local_74 = (byte ****)local_c0[0x2f][uVar18];\n        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;\n        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }\n        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }\nLAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;\n        iVar16 = 8;\n        pbVar21 = (byte *)(local_e0 + -0x11cf31);\n        ppppbVar22 = ppppbVar3;\n        do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }\n        local_e8 = (byte ***)ppppbVar3;\n        if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }\n        puVar19 = puVar20;\n        if (bVar17 != 0) goto LAB_00077afb;\n      }" ({ "{") (if_statement "if (ppppbVar3 < local_c0[0x2c]) {\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }" (if "if") (parenthesized_expression "(ppppbVar3 < local_c0[0x2c])" (( "(") (binary_expression "ppppbVar3 < local_c0[0x2c]" (identifier "ppppbVar3") (< "<") (subscript_expression "local_c0[0x2c]" (identifier "local_c0") ([ "[") (number_literal "0x2c") (] "]"))) () ")")) (compound_statement "{\n          local_74 = (byte ****)0x0;\nLAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;\n          *(undefined4 *)(puVar20 + -0xc) = 0x11c;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;\n                    \n          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;\n          FUN_000da200();\n        }" ({ "{") (expression_statement "local_74 = (byte ****)0x0;" (assignment_expression "local_74 = (byte ****)0x0" (identifier "local_74") (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000780d7:\n          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" (statement_identifier "LAB_000780d7") (: ":") (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11e2b4" (pointer_expression "*(int *)(puVar20 + -8)" (* "*") (cast_expression "(int *)(puVar20 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11e2b4" (identifier "local_e0") (+ "+") (number_literal "-0x11e2b4"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x11c;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x11c" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x11c")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11cf41" (identifier "local_e0") (+ "+") (number_literal "-0x11cf41"))) (; ";")) (expression_statement "*(undefined **)(puVar20 + -0x14) = &UNK_000780f8;" (assignment_expression "*(undefined **)(puVar20 + -0x14) = &UNK_000780f8" (pointer_expression "*(undefined **)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_000780f8" (& "&") (identifier "UNK_000780f8"))) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];" (assignment_expression "uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c]" (identifier "uVar18") (= "=") (binary_expression "(int)ppppbVar3 - (int)local_c0[0x2c]" (cast_expression "(int)ppppbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar3")) (- "-") (cast_expression "(int)local_c0[0x2c]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_c0[0x2c]" (identifier "local_c0") ([ "[") (number_literal "0x2c") (] "]"))))) (; ";")) (expression_statement "local_b4 = local_c0[0x30];" (assignment_expression "local_b4 = local_c0[0x30]" (identifier "local_b4") (= "=") (subscript_expression "local_c0[0x30]" (identifier "local_c0") ([ "[") (number_literal "0x30") (] "]"))) (; ";")) (if_statement "if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }" (if "if") (parenthesized_expression "((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18)" (( "(") (binary_expression "(uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18" (call_expression "(uint)((int)local_b4 - (int)local_c0[0x2f] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_b4 - (int)local_c0[0x2f] >> 2)" (( "(") (binary_expression "(int)local_b4 - (int)local_c0[0x2f] >> 2" (binary_expression "(int)local_b4 - (int)local_c0[0x2f]" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (- "-") (cast_expression "(int)local_c0[0x2f]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_c0[0x2f]" (identifier "local_c0") ([ "[") (number_literal "0x2f") (] "]")))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar18")) () ")")) (compound_statement "{\n          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;\n          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;\n          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;\n                    \n          *(undefined4 *)(puVar20 + -0x14) = 0x78609;\n          FUN_000da200();\n        }" ({ "{") (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11dcdc" (pointer_expression "*(int *)(puVar20 + -8)" (* "*") (cast_expression "(int *)(puVar20 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11dcdc" (identifier "local_e0") (+ "+") (number_literal "-0x11dcdc"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0x8ad;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0x8ad" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x8ad")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11d1b8" (identifier "local_e0") (+ "+") (number_literal "-0x11d1b8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x78609;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x78609" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78609")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_74 = (byte ****)local_c0[0x2f][uVar18];" (assignment_expression "local_74 = (byte ****)local_c0[0x2f][uVar18]" (identifier "local_74") (= "=") (cast_expression "(byte ****)local_c0[0x2f][uVar18]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "local_c0[0x2f][uVar18]" (subscript_expression "local_c0[0x2f]" (identifier "local_c0") ([ "[") (number_literal "0x2f") (] "]")) ([ "[") (identifier "uVar18") (] "]")))) (; ";")) (if_statement "if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;" (if "if") (parenthesized_expression "((byte *****)local_74 == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)local_74 == (byte *****)0x0" (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000780d7;" (goto "goto") (statement_identifier "LAB_000780d7") (; ";"))) (if_statement "if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)((int)local_74 + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)local_74 + 0x2a) & 0x10)" (( "(") (binary_expression "*(byte *)((int)local_74 + 0x2a) & 0x10" (pointer_expression "*(byte *)((int)local_74 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_74 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_74 + 0x2a)" (( "(") (binary_expression "(int)local_74 + 0x2a" (cast_expression "(int)local_74" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_74")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(byte *****)(puVar20 + -0xc) = local_74;\n          *(int *)(puVar20 + -0x10) = local_ec;\n          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;\n          local_74 = (byte ****)FUN_001e6f30();\n        }" ({ "{") (expression_statement "*(byte *****)(puVar20 + -0xc) = local_74;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_74" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_74")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_ec;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_ec" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_ec")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x780c5;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x780c5" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x780c5")) (; ";")) (expression_statement "local_74 = (byte ****)FUN_001e6f30();" (assignment_expression "local_74 = (byte ****)FUN_001e6f30()" (identifier "local_74") (= "=") (cast_expression "(byte ****)FUN_001e6f30()" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "FUN_001e6f30()" (identifier "FUN_001e6f30") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }\n        else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)local_74 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_74 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)local_74 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)local_74 + 0x2a) & 7" (pointer_expression "*(byte *)((int)local_74 + 0x2a)" (* "*") (cast_expression "(byte *)((int)local_74 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_74 + 0x2a)" (( "(") (binary_expression "(int)local_74 + 0x2a" (cast_expression "(int)local_74" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_74")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_cc = ((byte *****)local_74)[2];\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }\n        }" ({ "{") (expression_statement "local_10c = (byte ***)((byte *****)local_74)[0xc];" (assignment_expression "local_10c = (byte ***)((byte *****)local_74)[0xc]" (identifier "local_10c") (= "=") (cast_expression "(byte ***)((byte *****)local_74)[0xc]" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "((byte *****)local_74)[0xc]" (parenthesized_expression "((byte *****)local_74)" (( "(") (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) () ")")) ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "local_108 = (byte ***)((byte *****)local_74)[0xd];" (assignment_expression "local_108 = (byte ***)((byte *****)local_74)[0xd]" (identifier "local_108") (= "=") (cast_expression "(byte ***)((byte *****)local_74)[0xd]" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "((byte *****)local_74)[0xd]" (parenthesized_expression "((byte *****)local_74)" (( "(") (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) () ")")) ([ "[") (number_literal "0xd") (] "]")))) (; ";")) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_10c);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_10c)" (identifier "local_d4") (= "=") (cast_expression "(byte *)((int)local_bc + (int)local_10c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_bc + (int)local_10c)" (( "(") (binary_expression "(int)local_bc + (int)local_10c" (cast_expression "(int)local_bc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_bc")) (+ "+") (cast_expression "(int)local_10c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_10c"))) () ")")))) (; ";")) (expression_statement "local_cc = ((byte *****)local_74)[2];" (assignment_expression "local_cc = ((byte *****)local_74)[2]" (identifier "local_cc") (= "=") (subscript_expression "((byte *****)local_74)[2]" (parenthesized_expression "((byte *****)local_74)" (( "(") (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) () ")")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;" (assignment_expression "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" (identifier "local_d0") (= "=") (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c)" (cast_expression "(int)local_108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_108")) (+ "+") (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_10c)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_bc,(uint)local_10c)" (identifier "CARRY4") (argument_list "((uint)local_bc,(uint)local_10c)" (( "(") (cast_expression "(uint)local_bc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_bc")) (, ",") (cast_expression "(uint)local_10c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_10c")) () ")"))))) (+ "+") (identifier "local_b8"))) (; ";")) (if_statement "if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }\n          else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" (if "if") (parenthesized_expression "(((uint)((byte *****)local_cc)[0xb] & 1) == 0)" (( "(") (binary_expression "((uint)((byte *****)local_cc)[0xb] & 1) == 0" (parenthesized_expression "((uint)((byte *****)local_cc)[0xb] & 1)" (( "(") (binary_expression "(uint)((byte *****)local_cc)[0xb] & 1" (subscript_expression "(uint)((byte *****)local_cc)[0xb]" (call_expression "(uint)((byte *****)local_cc)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((byte *****)local_cc)" (( "(") (cast_expression "(byte *****)local_cc" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_cc")) () ")"))) ([ "[") (number_literal "0xb") (] "]")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_b4 = (byte ***)((byte *****)local_74)[3];\n            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;\n            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;\n            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;\n            if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }\n          }" ({ "{") (expression_statement "local_b4 = (byte ***)((byte *****)local_74)[3];" (assignment_expression "local_b4 = (byte ***)((byte *****)local_74)[3]" (identifier "local_b4") (= "=") (cast_expression "(byte ***)((byte *****)local_74)[3]" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "((byte *****)local_74)[3]" (parenthesized_expression "((byte *****)local_74)" (( "(") (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) () ")")) ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;" (assignment_expression "bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1" (identifier "bVar17") (= "=") (binary_expression "*(byte *)((int)local_74 + 0x2b) >> 5 & 1" (binary_expression "*(byte *)((int)local_74 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)local_74 + 0x2b)" (* "*") (cast_expression "(byte *)((int)local_74 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_74 + 0x2b)" (( "(") (binary_expression "(int)local_74 + 0x2b" (cast_expression "(int)local_74" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_74")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;" (assignment_expression "bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2" (identifier "bVar24") (= "=") (binary_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf) < 2" (parenthesized_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)((byte *****)local_74 + 10) & 0xf" (pointer_expression "*(byte *)((byte *****)local_74 + 10)" (* "*") (cast_expression "(byte *)((byte *****)local_74 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((byte *****)local_74 + 10)" (( "(") (binary_expression "(byte *****)local_74 + 10" (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;" (assignment_expression "bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2" (identifier "bVar26") (= "=") (binary_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf) == 2" (parenthesized_expression "(*(byte *)((byte *****)local_74 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)((byte *****)local_74 + 10) & 0xf" (pointer_expression "*(byte *)((byte *****)local_74 + 10)" (* "*") (cast_expression "(byte *)((byte *****)local_74 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((byte *****)local_74 + 10)" (( "(") (binary_expression "(byte *****)local_74 + 10" (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "2"))) (; ";")) (if_statement "if (bVar26) {\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }" (if "if") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (compound_statement "{\n              bVar24 = false;\n              bVar26 = local_da == '\0';\n              if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }\n            }" ({ "{") (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = local_da == '\0';" (assignment_expression "bVar26 = local_da == '\0'" (identifier "bVar26") (= "=") (binary_expression "local_da == '\0'" (identifier "local_da") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar26) {\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n                if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }\n                local_c4 = *(byte *****)(local_ec + 0x15c);\n                *(undefined4 *)(puVar20 + -0xc) = 1;\n                *(undefined4 *)(puVar20 + -0x10) = 0;\n                *(byte ******)(puVar20 + -0x14) = &local_98;\n                *(byte ******)(puVar20 + -0x18) = &local_84;\n                local_98 = (byte ****)((byte *****)local_c4 + 0xd);\n                *(byte *****)(puVar20 + -0x1c) = local_98;\n                *(undefined1 **)(puVar20 + -0x20) = local_f0;\n                    \n                *(undefined4 *)(puVar20 + -0x24) = 0x78301;\n                local_84 = local_cc;\n                local_80 = local_b4;\n                FUN_000a8d90();\n                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;\n                bVar26 = puVar20 == (undefined1 *)0x4;\n                puVar20 = puVar20 + -4;\n              }" ({ "{") (if_statement "if (bVar17 != 0) {\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }" (if "if") (parenthesized_expression "(bVar17 != 0)" (( "(") (binary_expression "bVar17 != 0" (identifier "bVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_c4 = (byte ****)local_c0[0x54];\n                  bVar24 = ((uint)local_c4 & 3) == 0;\n                  bVar26 = ((uint)local_c4 & 3) == 1;\n                  if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;\n                }" ({ "{") (expression_statement "local_c4 = (byte ****)local_c0[0x54];" (assignment_expression "local_c4 = (byte ****)local_c0[0x54]" (identifier "local_c4") (= "=") (cast_expression "(byte ****)local_c0[0x54]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "local_c0[0x54]" (identifier "local_c0") ([ "[") (number_literal "0x54") (] "]")))) (; ";")) (expression_statement "bVar24 = ((uint)local_c4 & 3) == 0;" (assignment_expression "bVar24 = ((uint)local_c4 & 3) == 0" (identifier "bVar24") (= "=") (binary_expression "((uint)local_c4 & 3) == 0" (parenthesized_expression "((uint)local_c4 & 3)" (( "(") (binary_expression "(uint)local_c4 & 3" (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar26 = ((uint)local_c4 & 3) == 1;" (assignment_expression "bVar26 = ((uint)local_c4 & 3) == 1" (identifier "bVar26") (= "=") (binary_expression "((uint)local_c4 & 3) == 1" (parenthesized_expression "((uint)local_c4 & 3)" (( "(") (binary_expression "(uint)local_c4 & 3" (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "1"))) (; ";")) (if_statement "if ((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))\n                  goto LAB_00077ec0;" (if "if") (parenthesized_expression "((bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))" (( "(") (binary_expression "(bVar26) ||\n                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)))" (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (|| "||") (parenthesized_expression "((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)))" (( "(") (parenthesized_expression "(bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))" (( "(") (comma_expression "bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" (assignment_expression "bVar26 = local_d8 == 0x17" (identifier "bVar26") (= "=") (binary_expression "local_d8 == 0x17" (identifier "local_d8") (== "==") (number_literal "0x17"))) (, ",") (binary_expression "local_d8 < 0x18 &&\n                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" (binary_expression "local_d8 < 0x18" (identifier "local_d8") (< "<") (number_literal "0x18")) (&& "&&") (parenthesized_expression "(bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24)" (( "(") (comma_expression "bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24" (assignment_expression "bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0" (identifier "bVar24") (= "=") (binary_expression "(0x843f84U >> (local_d8 & 0x1f) & 1) != 0" (parenthesized_expression "(0x843f84U >> (local_d8 & 0x1f) & 1)" (( "(") (binary_expression "0x843f84U >> (local_d8 & 0x1f) & 1" (binary_expression "0x843f84U >> (local_d8 & 0x1f)" (number_literal "0x843f84U") (>> ">>") (parenthesized_expression "(local_d8 & 0x1f)" (( "(") (binary_expression "local_d8 & 0x1f" (identifier "local_d8") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) (, ",") (identifier "bVar24")) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00077ec0;" (goto "goto") (statement_identifier "LAB_00077ec0") (; ";"))) (} "}"))) (expression_statement "local_c4 = *(byte *****)(local_ec + 0x15c);" (assignment_expression "local_c4 = *(byte *****)(local_ec + 0x15c)" (identifier "local_c4") (= "=") (pointer_expression "*(byte *****)(local_ec + 0x15c)" (* "*") (cast_expression "(byte *****)(local_ec + 0x15c)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(local_ec + 0x15c)" (( "(") (binary_expression "local_ec + 0x15c" (identifier "local_ec") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0x14) = &local_98;" (assignment_expression "*(byte ******)(puVar20 + -0x14) = &local_98" (pointer_expression "*(byte ******)(puVar20 + -0x14)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x14)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_98" (& "&") (identifier "local_98"))) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0x18) = &local_84;" (assignment_expression "*(byte ******)(puVar20 + -0x18) = &local_84" (pointer_expression "*(byte ******)(puVar20 + -0x18)" (* "*") (cast_expression "(byte ******)(puVar20 + -0x18)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (; ";")) (expression_statement "local_98 = (byte ****)((byte *****)local_c4 + 0xd);" (assignment_expression "local_98 = (byte ****)((byte *****)local_c4 + 0xd)" (identifier "local_98") (= "=") (cast_expression "(byte ****)((byte *****)local_c4 + 0xd)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((byte *****)local_c4 + 0xd)" (( "(") (binary_expression "(byte *****)local_c4 + 0xd" (cast_expression "(byte *****)local_c4" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_c4")) (+ "+") (number_literal "0xd")) () ")")))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0x1c) = local_98;" (assignment_expression "*(byte *****)(puVar20 + -0x1c) = local_98" (pointer_expression "*(byte *****)(puVar20 + -0x1c)" (* "*") (cast_expression "(byte *****)(puVar20 + -0x1c)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_98")) (; ";")) (expression_statement "*(undefined1 **)(puVar20 + -0x20) = local_f0;" (assignment_expression "*(undefined1 **)(puVar20 + -0x20) = local_f0" (pointer_expression "*(undefined1 **)(puVar20 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_f0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x24) = 0x78301;" (assignment_expression "*(undefined4 *)(puVar20 + -0x24) = 0x78301" (pointer_expression "*(undefined4 *)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x78301")) (; ";")) (expression_statement "local_84 = local_cc;" (assignment_expression "local_84 = local_cc" (identifier "local_84") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "local_80 = local_b4;" (assignment_expression "local_80 = local_b4" (identifier "local_80") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "FUN_000a8d90();" (call_expression "FUN_000a8d90()" (identifier "FUN_000a8d90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;" (assignment_expression "bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20" (identifier "bVar24") (= "=") (binary_expression "(undefined1 *)0xffffffe3 < puVar20 + -0x20" (cast_expression "(undefined1 *)0xffffffe3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffe3")) (< "<") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")))) (; ";")) (expression_statement "bVar26 = puVar20 == (undefined1 *)0x4;" (assignment_expression "bVar26 = puVar20 == (undefined1 *)0x4" (identifier "bVar26") (= "=") (binary_expression "puVar20 == (undefined1 *)0x4" (identifier "puVar20") (== "==") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "puVar20 = puVar20 + -4;" (assignment_expression "puVar20 = puVar20 + -4" (identifier "puVar20") (= "=") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" (else "else") (compound_statement "{\n            local_b4 = (byte ***)0x0;\n            bVar24 = false;\n            bVar17 = 0;\n            bVar26 = true;\n            local_cc = (byte ****)0x0;\n          }" ({ "{") (expression_statement "local_b4 = (byte ***)0x0;" (assignment_expression "local_b4 = (byte ***)0x0" (identifier "local_b4") (= "=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (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 "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" (else "else") (compound_statement "{\n          local_10c = (byte ***)((byte *****)local_74)[0xc];\n          local_b4 = (byte ***)0x0;\n          local_108 = (byte ***)((byte *****)local_74)[0xd];\n          local_cc = (byte ****)0x0;\n          local_d4 = (byte *)((int)local_bc + (int)local_10c);\n          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;\n          bVar24 = false;\n          bVar17 = 0;\n          bVar26 = true;\n        }" ({ "{") (expression_statement "local_10c = (byte ***)((byte *****)local_74)[0xc];" (assignment_expression "local_10c = (byte ***)((byte *****)local_74)[0xc]" (identifier "local_10c") (= "=") (cast_expression "(byte ***)((byte *****)local_74)[0xc]" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "((byte *****)local_74)[0xc]" (parenthesized_expression "((byte *****)local_74)" (( "(") (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) () ")")) ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "local_b4 = (byte ***)0x0;" (assignment_expression "local_b4 = (byte ***)0x0" (identifier "local_b4") (= "=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_108 = (byte ***)((byte *****)local_74)[0xd];" (assignment_expression "local_108 = (byte ***)((byte *****)local_74)[0xd]" (identifier "local_108") (= "=") (cast_expression "(byte ***)((byte *****)local_74)[0xd]" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "((byte *****)local_74)[0xd]" (parenthesized_expression "((byte *****)local_74)" (( "(") (cast_expression "(byte *****)local_74" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "local_74")) () ")")) ([ "[") (number_literal "0xd") (] "]")))) (; ";")) (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 "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_d4 = (byte *)((int)local_bc + (int)local_10c);" (assignment_expression "local_d4 = (byte *)((int)local_bc + (int)local_10c)" (identifier "local_d4") (= "=") (cast_expression "(byte *)((int)local_bc + (int)local_10c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_bc + (int)local_10c)" (( "(") (binary_expression "(int)local_bc + (int)local_10c" (cast_expression "(int)local_bc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_bc")) (+ "+") (cast_expression "(int)local_10c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_10c"))) () ")")))) (; ";")) (expression_statement "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;" (assignment_expression "local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" (identifier "local_d0") (= "=") (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8" (binary_expression "(int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c)" (cast_expression "(int)local_108" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_108")) (+ "+") (cast_expression "(uint)CARRY4((uint)local_bc,(uint)local_10c)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)local_bc,(uint)local_10c)" (identifier "CARRY4") (argument_list "((uint)local_bc,(uint)local_10c)" (( "(") (cast_expression "(uint)local_bc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_bc")) (, ",") (cast_expression "(uint)local_10c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_10c")) () ")"))))) (+ "+") (identifier "local_b8"))) (; ";")) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (} "}")))) (labeled_statement "LAB_00077ec0:\n        ppppbVar3 = (byte ****)*local_74;" (statement_identifier "LAB_00077ec0") (: ":") (expression_statement "ppppbVar3 = (byte ****)*local_74;" (assignment_expression "ppppbVar3 = (byte ****)*local_74" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)*local_74" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*local_74" (* "*") (identifier "local_74")))) (; ";"))) (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" (identifier "iVar16") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf31);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf31)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11cf31)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11cf31)" (( "(") (binary_expression "local_e0 + -0x11cf31" (identifier "local_e0") (+ "+") (number_literal "-0x11cf31")) () ")")))) (; ";")) (expression_statement "ppppbVar22 = ppppbVar3;" (assignment_expression "ppppbVar22 = ppppbVar3" (identifier "ppppbVar22") (= "=") (identifier "ppppbVar3")) (; ";")) (do_statement "do {\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        } while (bVar26);" (do "do") (compound_statement "{\n          if (iVar16 == 0) break;\n          iVar16 = iVar16 + -1;\n          bVar24 = *pbVar21 < *(byte *)ppppbVar22;\n          bVar26 = *pbVar21 == *(byte *)ppppbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n        }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar21 < *(byte *)ppppbVar22;" (assignment_expression "bVar24 = *pbVar21 < *(byte *)ppppbVar22" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 < *(byte *)ppppbVar22" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*(byte *)ppppbVar22" (* "*") (cast_expression "(byte *)ppppbVar22" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbVar22"))))) (; ";")) (expression_statement "bVar26 = *pbVar21 == *(byte *)ppppbVar22;" (assignment_expression "bVar26 = *pbVar21 == *(byte *)ppppbVar22" (identifier "bVar26") (= "=") (binary_expression "*pbVar21 == *(byte *)ppppbVar22" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*(byte *)ppppbVar22" (* "*") (cast_expression "(byte *)ppppbVar22" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbVar22"))))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" (identifier "ppppbVar22") (= "=") (cast_expression "(byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" (( "(") (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2" (cast_expression "(int)ppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar22")) (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" (identifier "bVar24") (= "=") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24"))) (; ";")) (if_statement "if (bVar24) {\n          ppppbVar3 = ppppbVar3 + 2;\n        }\n        else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" (if "if") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (compound_statement "{\n          ppppbVar3 = ppppbVar3 + 2;\n        }" ({ "{") (expression_statement "ppppbVar3 = ppppbVar3 + 2;" (assignment_expression "ppppbVar3 = ppppbVar3 + 2" (identifier "ppppbVar3") (= "=") (binary_expression "ppppbVar3 + 2" (identifier "ppppbVar3") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" (else "else") (compound_statement "{\n          iVar16 = 7;\n          pbVar21 = (byte *)(local_e0 + -0x11cf28);\n          ppppbVar22 = ppppbVar3;\n          do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);\n          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);\n          if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }\n        }" ({ "{") (expression_statement "iVar16 = 7;" (assignment_expression "iVar16 = 7" (identifier "iVar16") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar21 = (byte *)(local_e0 + -0x11cf28);" (assignment_expression "pbVar21 = (byte *)(local_e0 + -0x11cf28)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(local_e0 + -0x11cf28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_e0 + -0x11cf28)" (( "(") (binary_expression "local_e0 + -0x11cf28" (identifier "local_e0") (+ "+") (number_literal "-0x11cf28")) () ")")))) (; ";")) (expression_statement "ppppbVar22 = ppppbVar3;" (assignment_expression "ppppbVar22 = ppppbVar3" (identifier "ppppbVar22") (= "=") (identifier "ppppbVar3")) (; ";")) (do_statement "do {\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          } while (bVar24);" (do "do") (compound_statement "{\n            if (iVar16 == 0) break;\n            iVar16 = iVar16 + -1;\n            bVar25 = *pbVar21 < *(byte *)ppppbVar22;\n            bVar24 = *pbVar21 == *(byte *)ppppbVar22;\n            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);\n          }" ({ "{") (if_statement "if (iVar16 == 0) break;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar21 < *(byte *)ppppbVar22;" (assignment_expression "bVar25 = *pbVar21 < *(byte *)ppppbVar22" (identifier "bVar25") (= "=") (binary_expression "*pbVar21 < *(byte *)ppppbVar22" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*(byte *)ppppbVar22" (* "*") (cast_expression "(byte *)ppppbVar22" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbVar22"))))) (; ";")) (expression_statement "bVar24 = *pbVar21 == *(byte *)ppppbVar22;" (assignment_expression "bVar24 = *pbVar21 == *(byte *)ppppbVar22" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 == *(byte *)ppppbVar22" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*(byte *)ppppbVar22" (* "*") (cast_expression "(byte *)ppppbVar22" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbVar22"))))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);" (assignment_expression "ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" (identifier "ppppbVar22") (= "=") (cast_expression "(byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbVar22 + (uint)bVar27 * -2 + 1)" (( "(") (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "(int)ppppbVar22 + (uint)bVar27 * -2" (cast_expression "(int)ppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar22")) (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);" (assignment_expression "ppppbVar3 = (byte ****)((int)ppppbVar3 + 7)" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)((int)ppppbVar3 + 7)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbVar3 + 7)" (( "(") (binary_expression "(int)ppppbVar3 + 7" (cast_expression "(int)ppppbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar3")) (+ "+") (number_literal "7")) () ")")))) (; ";")) (if_statement "if ((!bVar25 && !bVar24) != bVar25) {\n            ppppbVar3 = (byte ****)local_e8;\n          }" (if "if") (parenthesized_expression "((!bVar25 && !bVar24) != bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar24) != bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (!= "!=") (identifier "bVar25")) () ")")) (compound_statement "{\n            ppppbVar3 = (byte ****)local_e8;\n          }" ({ "{") (expression_statement "ppppbVar3 = (byte ****)local_e8;" (assignment_expression "ppppbVar3 = (byte ****)local_e8" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)local_e8" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_e8"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_e8 = (byte ***)ppppbVar3;" (assignment_expression "local_e8 = (byte ***)ppppbVar3" (identifier "local_e8") (= "=") (cast_expression "(byte ***)ppppbVar3" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppbVar3"))) (; ";")) (if_statement "if (local_d9 != '\0') {\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }" (if "if") (parenthesized_expression "(local_d9 != '\0')" (( "(") (binary_expression "local_d9 != '\0'" (identifier "local_d9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }\n          local_c4 = (byte ****)&local_34;\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_fc;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;\n          FUN_000aa900();\n          puVar2 = *(undefined4 **)(local_f8 + 4);\n          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }\n          *(byte *****)(puVar20 + -0xc) = local_c4;\n          *(int *)(puVar20 + -0x10) = local_100;\n          local_34 = (byte ****)local_10c;\n          local_30 = local_108;\n          local_2c = local_bc;\n          local_28 = local_b8;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;\n          FUN_000ab1b0();\n          pppppbVar23 = (byte *****)*param_2;\n          if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }\n          local_30 = (byte ***)0x0;\n          puVar2 = *(undefined4 **)(local_f4 + 4);\n          local_34 = (byte ****)pppppbVar23;\n          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }\n          local_6c = (byte ****)0x0;\n          *(byte ******)(puVar20 + -0xc) = &local_6c;\n          *(int *)(puVar20 + -0x10) = local_104;\n          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;\n          FUN_000ab360();\n        }" ({ "{") (if_statement "if (bVar17 == 0) {\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }\n          else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" (if "if") (parenthesized_expression "(bVar17 == 0)" (( "(") (binary_expression "bVar17 == 0" (identifier "bVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_34 = (byte ****)0x0;\n            local_30 = (byte ***)0x0;\n          }" ({ "{") (expression_statement "local_34 = (byte ****)0x0;" (assignment_expression "local_34 = (byte ****)0x0" (identifier "local_34") (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" (identifier "local_30") (= "=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" (else "else") (compound_statement "{\n            local_34 = local_cc;\n            local_30 = local_b4;\n          }" ({ "{") (expression_statement "local_34 = local_cc;" (assignment_expression "local_34 = local_cc" (identifier "local_34") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "local_30 = local_b4;" (assignment_expression "local_30 = local_b4" (identifier "local_30") (= "=") (identifier "local_b4")) (; ";")) (} "}")))) (expression_statement "local_c4 = (byte ****)&local_34;" (assignment_expression "local_c4 = (byte ****)&local_34" (identifier "local_c4") (= "=") (cast_expression "(byte ****)&local_34" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_34" (& "&") (identifier "local_34")))) (; ";")) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_fc;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_fc" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_fc")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77f29;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77f29" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x77f29")) (; ";")) (expression_statement "FUN_000aa900();" (call_expression "FUN_000aa900()" (identifier "FUN_000aa900") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(local_f8 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f8 + 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(local_f8 + 4)" (* "*") (cast_expression "(undefined4 **)(local_f8 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f8 + 4)" (( "(") (binary_expression "local_f8 + 4" (identifier "local_f8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar2 == *(undefined4 **)(local_f8 + 8)) {\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }\n          else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" (if "if") (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f8 + 8))" (( "(") (binary_expression "puVar2 == *(undefined4 **)(local_f8 + 8)" (identifier "puVar2") (== "==") (pointer_expression "*(undefined4 **)(local_f8 + 8)" (* "*") (cast_expression "(undefined4 **)(local_f8 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f8 + 8)" (( "(") (binary_expression "local_f8 + 8" (identifier "local_f8") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(byte ******)(puVar20 + -8) = &local_74;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f8;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;\n            FUN_000a82c0();\n          }" ({ "{") (expression_statement "*(byte ******)(puVar20 + -8) = &local_74;" (assignment_expression "*(byte ******)(puVar20 + -8) = &local_74" (pointer_expression "*(byte ******)(puVar20 + -8)" (* "*") (cast_expression "(byte ******)(puVar20 + -8)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&local_74" (& "&") (identifier "local_74"))) (; ";")) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_f8;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f8" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_f8")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x781fb;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x781fb" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x781fb")) (; ";")) (expression_statement "FUN_000a82c0();" (call_expression "FUN_000a82c0()" (identifier "FUN_000a82c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" (else "else") (compound_statement "{\n            *puVar2 = local_74;\n            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;\n          }" ({ "{") (expression_statement "*puVar2 = local_74;" (assignment_expression "*puVar2 = local_74" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "*(undefined4 **)(local_f8 + 4) = puVar2 + 1;" (assignment_expression "*(undefined4 **)(local_f8 + 4) = puVar2 + 1" (pointer_expression "*(undefined4 **)(local_f8 + 4)" (* "*") (cast_expression "(undefined4 **)(local_f8 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f8 + 4)" (( "(") (binary_expression "local_f8 + 4" (identifier "local_f8") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(byte *****)(puVar20 + -0xc) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -0xc) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -0xc)" (* "*") (cast_expression "(byte *****)(puVar20 + -0xc)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_100;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_100" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_100")) (; ";")) (expression_statement "local_34 = (byte ****)local_10c;" (assignment_expression "local_34 = (byte ****)local_10c" (identifier "local_34") (= "=") (cast_expression "(byte ****)local_10c" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_10c"))) (; ";")) (expression_statement "local_30 = local_108;" (assignment_expression "local_30 = local_108" (identifier "local_30") (= "=") (identifier "local_108")) (; ";")) (expression_statement "local_2c = local_bc;" (assignment_expression "local_2c = local_bc" (identifier "local_2c") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "local_28 = local_b8;" (assignment_expression "local_28 = local_b8" (identifier "local_28") (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77f82;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77f82" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x77f82")) (; ";")) (expression_statement "FUN_000ab1b0();" (call_expression "FUN_000ab1b0()" (identifier "FUN_000ab1b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppppbVar23 = (byte *****)*param_2;" (assignment_expression "pppppbVar23 = (byte *****)*param_2" (identifier "pppppbVar23") (= "=") (cast_expression "(byte *****)*param_2" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (if_statement "if (param_2[1] != 0) {\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }" (if "if") (parenthesized_expression "(param_2[1] != 0)" (( "(") (binary_expression "param_2[1] != 0" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;\n            *(undefined4 *)(puVar20 + -0xc) = 0xc0;\n            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;\n                    \n            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;\n            FUN_000da200();\n          }" ({ "{") (expression_statement "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c;" (assignment_expression "*(int *)(puVar20 + -8) = local_e0 + -0x11de3c" (pointer_expression "*(int *)(puVar20 + -8)" (* "*") (cast_expression "(int *)(puVar20 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11de3c" (identifier "local_e0") (+ "+") (number_literal "-0x11de3c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)(puVar20 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11cc44" (identifier "local_e0") (+ "+") (number_literal "-0x11cc44"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x785e8;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x785e8" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x785e8")) (; ";")) (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_30 = (byte ***)0x0;" (assignment_expression "local_30 = (byte ***)0x0" (identifier "local_30") (= "=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(local_f4 + 4);" (assignment_expression "puVar2 = *(undefined4 **)(local_f4 + 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(local_f4 + 4)" (* "*") (cast_expression "(undefined4 **)(local_f4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f4 + 4)" (( "(") (binary_expression "local_f4 + 4" (identifier "local_f4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_34 = (byte ****)pppppbVar23;" (assignment_expression "local_34 = (byte ****)pppppbVar23" (identifier "local_34") (= "=") (cast_expression "(byte ****)pppppbVar23" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar23"))) (; ";")) (if_statement "if (puVar2 == *(undefined4 **)(local_f4 + 8)) {\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }\n          else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" (if "if") (parenthesized_expression "(puVar2 == *(undefined4 **)(local_f4 + 8))" (( "(") (binary_expression "puVar2 == *(undefined4 **)(local_f4 + 8)" (identifier "puVar2") (== "==") (pointer_expression "*(undefined4 **)(local_f4 + 8)" (* "*") (cast_expression "(undefined4 **)(local_f4 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f4 + 8)" (( "(") (binary_expression "local_f4 + 8" (identifier "local_f4") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            *(byte *****)(puVar20 + -8) = local_c4;\n            *(undefined4 **)(puVar20 + -0xc) = puVar2;\n            *(int *)(puVar20 + -0x10) = local_f4;\n            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;\n            FUN_000aa950();\n          }" ({ "{") (expression_statement "*(byte *****)(puVar20 + -8) = local_c4;" (assignment_expression "*(byte *****)(puVar20 + -8) = local_c4" (pointer_expression "*(byte *****)(puVar20 + -8)" (* "*") (cast_expression "(byte *****)(puVar20 + -8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(undefined4 **)(puVar20 + -0xc) = puVar2;" (assignment_expression "*(undefined4 **)(puVar20 + -0xc) = puVar2" (pointer_expression "*(undefined4 **)(puVar20 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_f4;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_f4" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_f4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x781dd;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x781dd" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x781dd")) (; ";")) (expression_statement "FUN_000aa950();" (call_expression "FUN_000aa950()" (identifier "FUN_000aa950") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" (else "else") (compound_statement "{\n            *puVar2 = pppppbVar23;\n            puVar2[1] = 0;\n            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;\n          }" ({ "{") (expression_statement "*puVar2 = pppppbVar23;" (assignment_expression "*puVar2 = pppppbVar23" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "pppppbVar23")) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(local_f4 + 4) = puVar2 + 2;" (assignment_expression "*(undefined4 **)(local_f4 + 4) = puVar2 + 2" (pointer_expression "*(undefined4 **)(local_f4 + 4)" (* "*") (cast_expression "(undefined4 **)(local_f4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_f4 + 4)" (( "(") (binary_expression "local_f4 + 4" (identifier "local_f4") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_6c = (byte ****)0x0;" (assignment_expression "local_6c = (byte ****)0x0" (identifier "local_6c") (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(byte ******)(puVar20 + -0xc) = &local_6c;" (assignment_expression "*(byte ******)(puVar20 + -0xc) = &local_6c" (pointer_expression "*(byte ******)(puVar20 + -0xc)" (* "*") (cast_expression "(byte ******)(puVar20 + -0xc)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "*(int *)(puVar20 + -0x10) = local_104;" (assignment_expression "*(int *)(puVar20 + -0x10) = local_104" (pointer_expression "*(int *)(puVar20 + -0x10)" (* "*") (cast_expression "(int *)(puVar20 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_104")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x14) = 0x77fd9;" (assignment_expression "*(undefined4 *)(puVar20 + -0x14) = 0x77fd9" (pointer_expression "*(undefined4 *)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x77fd9")) (; ";")) (expression_statement "FUN_000ab360();" (call_expression "FUN_000ab360()" (identifier "FUN_000ab360") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" (identifier "puVar19") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (bVar17 != 0) goto LAB_00077afb;" (if "if") (parenthesized_expression "(bVar17 != 0)" (( "(") (binary_expression "bVar17 != 0" (identifier "bVar17") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00077afb;" (goto "goto") (statement_identifier "LAB_00077afb") (; ";"))) (} "}")))) (labeled_statement "LAB_00077980:\n      local_b0 = (int *)((int)local_b0 + 1);" (statement_identifier "LAB_00077980") (: ":") (expression_statement "local_b0 = (int *)((int)local_b0 + 1);" (assignment_expression "local_b0 = (int *)((int)local_b0 + 1)" (identifier "local_b0") (= "=") (cast_expression "(int *)((int)local_b0 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b0 + 1)" (( "(") (binary_expression "(int)local_b0 + 1" (cast_expression "(int)local_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b0")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "param_2 = param_2 + 6;" (assignment_expression "param_2 = param_2 + 6" (identifier "param_2") (= "=") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar20 = puVar19;" (assignment_expression "puVar20 = puVar19" (identifier "puVar20") (= "=") (identifier "puVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_3 != local_b0)" (( "(") (binary_expression "param_3 != local_b0" (identifier "param_3") (!= "!=") (identifier "local_b0")) () ")")) (; ";")) (} "}")))) (if_statement "if (local_4c[0] != local_114) {\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }" (if "if") (parenthesized_expression "(local_4c[0] != local_114)" (( "(") (binary_expression "local_4c[0] != local_114" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_114")) () ")")) (compound_statement "{\n    *(byte **)(puVar19 + -0x10) = local_4c[0];\n    *(undefined4 *)(puVar19 + -0x14) = 0x78222;\n    FUN_00248220();\n  }" ({ "{") (expression_statement "*(byte **)(puVar19 + -0x10) = local_4c[0];" (assignment_expression "*(byte **)(puVar19 + -0x10) = local_4c[0]" (pointer_expression "*(byte **)(puVar19 + -0x10)" (* "*") (cast_expression "(byte **)(puVar19 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x78222;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x78222" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x78222")) (; ";")) (expression_statement "FUN_00248220();" (call_expression "FUN_00248220()" (identifier "FUN_00248220") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_64 != 0) && (local_60 != 0)) {\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }" (if "if") (parenthesized_expression "((local_64 != 0) && (local_60 != 0))" (( "(") (binary_expression "(local_64 != 0) && (local_60 != 0)" (parenthesized_expression "(local_64 != 0)" (( "(") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;\n    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;\n    uVar12 = gettext();\n    *(undefined4 *)(puVar19 + -0x10) = uVar12;\n    *(undefined4 *)(puVar19 + -0x14) = local_54;\n    *(undefined4 *)(puVar19 + -0x18) = local_58;\n    *(undefined4 *)(puVar19 + -0x1c) = local_5c;\n    *(int *)(puVar19 + -0x20) = local_60;\n    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;\n    FUN_000d1a30();\n  }" ({ "{") (expression_statement "*(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;" (assignment_expression "*(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c" (pointer_expression "*(int *)(puVar19 + -0x10)" (* "*") (cast_expression "(int *)(puVar19 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_e0 + -0x11ca0c" (identifier "local_e0") (+ "+") (number_literal "-0x11ca0c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = 0x7824a;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = 0x7824a" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x7824a")) (; ";")) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" (identifier "uVar12") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x10) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -0x10) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x10)" (( "(") (binary_expression "puVar19 + -0x10" (identifier "puVar19") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x14) = local_54;" (assignment_expression "*(undefined4 *)(puVar19 + -0x14) = local_54" (pointer_expression "*(undefined4 *)(puVar19 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x14)" (( "(") (binary_expression "puVar19 + -0x14" (identifier "puVar19") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_54")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x18) = local_58;" (assignment_expression "*(undefined4 *)(puVar19 + -0x18) = local_58" (pointer_expression "*(undefined4 *)(puVar19 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x18)" (( "(") (binary_expression "puVar19 + -0x18" (identifier "puVar19") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x1c) = local_5c;" (assignment_expression "*(undefined4 *)(puVar19 + -0x1c) = local_5c" (pointer_expression "*(undefined4 *)(puVar19 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x1c)" (( "(") (binary_expression "puVar19 + -0x1c" (identifier "puVar19") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(int *)(puVar19 + -0x20) = local_60;" (assignment_expression "*(int *)(puVar19 + -0x20) = local_60" (pointer_expression "*(int *)(puVar19 + -0x20)" (* "*") (cast_expression "(int *)(puVar19 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x20)" (( "(") (binary_expression "puVar19 + -0x20" (identifier "puVar19") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_60")) (; ";")) (expression_statement "*(undefined4 *)(puVar19 + -0x24) = 0x7825e;" (assignment_expression "*(undefined4 *)(puVar19 + -0x24) = 0x7825e" (pointer_expression "*(undefined4 *)(puVar19 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x24)" (( "(") (binary_expression "puVar19 + -0x24" (identifier "puVar19") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x7825e")) (; ";")) (expression_statement "FUN_000d1a30();" (call_expression "FUN_000d1a30()" (identifier "FUN_000d1a30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x0007822c) */
/* WARNING: Removing unreachable block (ram,0x00078233) */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: gc_process_relocs<64, false, (anonymous namespace)::Target_powerpc<64,
   false>, (anonymous namespace)::Target_powerpc<64, false>::Scan, gold::Default_classify_reloc<4,
   64, false> > */

void var_15::
     gc_process_relocs<64,var_9,var_5(anonymous_namespace)::var_2<64,var_9>,var_5(anonymous_namespace)::var_2<64,var_9>::type_25,_gold::Default_classify_reloc<4,_64,var_9>var_5>
               (type_24 *symtab,Layout *param_2,var_2<64,var_9> *target,
               var_1<64,var_9> *src_obj,type_11 src_indx,uchar *prelocs,size_t reloc_count
               ,Output_section *param_8,bool param_9,size_t param_10,uchar *plocal_syms)

{
  char *pcVar1;
  type_1 *var_17;
  type_2 puVar3;
  var_1<64,var_9> *pSVar4;
  char *pcVar5;
  int *piVar6;
  int iVar7;
  type_3 *var_34;
  type_4 *p_Var9;
  var_1<64,var_9> *pSVar10;
  type_2 ppSVar11;
  char *pcVar12;
  type_5 AVar13;
  type_6 *pSVar14;
  type_7 *pOVar15;
  var_2<64,var_9> *pTVar16;
  char var_33;
  size_t var_22;
  type_8 **pp_Var19;
  type_2 ppOVar20;
  type_2 pcVar21;
  type_7 *extraout_ECX;
  type_9 extraout_ECX_00;
  type_9 uVar22;
  char *pcVar23;
  char *pcVar24;
  int var_19;
  type_9 extraout_ECX_01;
  type_9 extraout_ECX_02;
  type_10 bVar26;
  type_10 var_24;
  type_11 uVar28;
  type_9 *var_23;
  type_9 *puVar30;
  type_10 *var_25;
  int var_10;
  type_8 **pp_Var32;
  type_12 _Var33;
  type_13 *pRVar34;
  bool var_26;
  bool var_27;
  bool var_35;
  type_10 bVar38;
  type_14 uVar39;
  type_15 auStack_11c [8];
  anon_union_16_2_edb7204a_for_basic_string<var_4,_std::char_traits<var_4>,var_16::var_3<var_4>var_5>var_6
  *var_7;
  type_16 *local_110;
  type_13 *local_10c;
  type_17 *local_108;
  type_18 *local_104;
  type_19 *local_100;
  type_20 *local_fc;
  type_21 *local_f8;
  type_22 *local_f4;
  type_15 *local_f0;
  int var_30;
  type_8 **local_e8;
  type_10 *local_e4;
  int var_20;
  bool local_da;
  char local_d9;
  type_23 *local_d8;
  int local_d4;
  type_2 local_d0;
  type_7 *local_cc;
  type_11 local_c8;
  type_6 *local_c4;
  type_7 *local_c0;
  type_13 *var_28;
  type_2 local_b8;
  type_24 *local_b4;
  var_2<64,var_9> *local_b0;
  type_4 *local_ac;
  char *local_a8;
  type_15 local_a4 [8];
  type_16 __node_gen_2;
  type_16 __node_gen_3;
  type_16 __node_gen_1;
  type_16 __node_gen;
  type_6 *local_8c;
  type_6 *local_88;
  type_7 *local_84;
  type_24 *local_80;
  type_7 *local_7c;
  type_11 local_78;
  type_6 src_id_1;
  type_6 dst_id;
  type_25 scan;
  type_26 src_section_name;
  type_6 src_id;
  type_13 *local_2c;
  type_12 local_28;
  
  bVar38 = 0;
  uVar39 = var_8();
  local_b0 = (var_2<64,var_9> *)((type_27)uVar39 >> 0x20);
  var_30 = (int)uVar39;
  var_20 = var_10 + 0x39c927;
  local_e4 = var_11 + var_10 + 6;
  if (*(int *)(*(int *)local_e4 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */
    var_12((char *)(var_10 + 0x26ab94),0x5c,&UNK_0027eccf + var_10);
  }
  local_c0 = extraout_ECX;
  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {
    var_7 = &src_section_name.field_2;
    src_section_name._M_dataplus._M_p = (type_2)var_7;
                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */
    std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>::
    var_13<var_14*>(&src_section_name,var_10 + 0x299add,var_10 + 0x299add);
    var_23 = (type_9 *)auStack_11c;
    uVar22 = extraout_ECX_01;
  }
  else {
    var_17 = extraout_ECX->output_lists_[0].
             super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>._M_impl.
             _M_start[0x10];
    if (var_17 == (type_1 *)(&UNK_00039d57 + var_10)) {
                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */
      elfcpp::Elf_file<64,var_9,_gold::var_18>::section_name
                ((Elf_file<64,var_9,_gold::var_18> *)(extraout_ECX->output_lists_ + 0xc),
                 (type_11)symtab);
      uVar22 = extraout_ECX_00;
    }
    else {
      (*(type_3 *)var_17)(&src_section_name,extraout_ECX,symtab);
      uVar22 = extraout_ECX_02;
    }
    var_23 = (type_9 *)&stack0xfffffee0;
    var_7 = &src_section_name.field_2;
  }
  _Var33._M_p = src_section_name._M_dataplus._M_p;
  var_19 = *(int *)local_e4;
  if (*(int *)(var_19 + 8) == 0) {
    *(type_9 *)((int)var_23 + -4) = uVar22;
    *(int *)((int)var_23 + -8) = var_20 + -0x11dc58;
    *(type_9 *)((int)var_23 + -0xc) = 0x5c;
    *(int *)((int)var_23 + -0x10) = var_20 + -0x131d93;
                    /* WARNING: Subroutine does not return */
    *(type_9 *)((int)var_23 + -0x14) = 0x78688;
    var_12(*(char **)((int)var_23 + -0x10),*(int *)((int)var_23 + -0xc),
                        *(char **)((int)var_23 + -8));
  }
  if (*(int *)(*(int *)(var_19 + 8) + 0x5934) == 0) {
LAB_000777af:
    local_d9 = '\0';
    local_104 = (type_18 *)0x0;
    local_f4 = (type_22 *)0x0;
    local_100 = (type_19 *)0x0;
    local_f8 = (type_21 *)0x0;
    local_fc = (type_20 *)0x0;
  }
  else {
    var_28 = (type_13 *)&local_2c;
    src_id.first = (type_13 *)&local_2c;
    pcVar21 = (type_2)0xffffffff;
    if (src_section_name._M_dataplus._M_p != (type_2)0x0) {
      *(type_2 *)((int)var_23 + -0x10) = src_section_name._M_dataplus._M_p;
      *(type_9 *)((int)var_23 + -0x14) = 0x78417;
      var_22 = var_21(*(char **)((int)var_23 + -0x10));
      pcVar21 = _Var33._M_p + var_22;
    }
    *(type_9 *)((int)var_23 + -4) = 0;
    *(type_2 *)((int)var_23 + -8) = pcVar21;
    local_c4 = &src_id;
    *(type_2 *)((int)var_23 + -0xc) = _Var33._M_p;
    *(type_6 **)((int)var_23 + -0x10) = local_c4;
    *(type_9 *)((int)var_23 + -0x14) = 0x7842f;
    std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>::
    var_13<var_14*>();
    var_19 = 5;
    var_26 = (type_15 *)0xffffffef < (type_15 *)((int)var_23 + -0x10);
    var_35 = var_23 == (type_9 *)0x0;
    var_25 = (type_10 *)(var_20 + -0x11d050);
    pRVar34 = src_id.first;
    do {
      if (var_19 == 0) break;
      var_19 = var_19 + -1;
      var_24 = *(type_10 *)&(pRVar34->super_Object)._vptr_Object;
      var_26 = *var_25 < var_24;
      var_35 = *var_25 == var_24;
      var_25 = var_25 + (type_11)bVar38 * -2 + 1;
      pRVar34 = (type_13 *)((int)pRVar34 + (type_11)bVar38 * -2 + 1);
    } while (var_35);
    var_27 = false;
    var_26 = (!var_26 && !var_35) == var_26;
    if (!var_26) {
      var_19 = 0xf;
      var_25 = (type_10 *)(var_20 + -0x11cf51);
      pRVar34 = src_id.first;
      do {
        if (var_19 == 0) break;
        var_19 = var_19 + -1;
        var_24 = *(type_10 *)&(pRVar34->super_Object)._vptr_Object;
        var_27 = *var_25 < var_24;
        var_26 = *var_25 == var_24;
        var_25 = var_25 + (type_11)bVar38 * -2 + 1;
        pRVar34 = (type_13 *)((int)pRVar34 + (type_11)bVar38 * -2 + 1);
      } while (var_26);
      if ((!var_27 && !var_26) != var_27) {
        if (src_id.first == var_28) {
          var_19 = *(int *)local_e4;
        }
        else {
          *(type_13 **)((int)var_23 + -0x10) = src_id.first;
          *(type_9 *)((int)var_23 + -0x14) = 0x78539;
          var_29(*(void **)((int)var_23 + -0x10));
          var_19 = *(int *)local_e4;
        }
        goto LAB_000777af;
      }
    }
    if (src_id.first != var_28) {
      *(type_13 **)((int)var_23 + -0x10) = src_id.first;
      *(type_9 *)((int)var_23 + -0x14) = 0x78664;
      var_29(*(void **)((int)var_23 + -0x10));
    }
    *(type_6 **)((int)var_23 + -0xc) = local_c4;
    src_id.first = (type_13 *)local_c0;
    src_id.second = (type_11)symtab;
    var_28 = *(type_13 **)(var_30 + 0x15c);
    *(type_28 ***)((int)var_23 + -0x10) = &(*(type_13 **)(var_30 + 0x15c))->sd_;
    *(type_9 *)((int)var_23 + -0x14) = 0x784b0;
    local_fc = std::__detail::
               _Map_base<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<const_std::pair<var_15::type_13*,_unsigned_int>,_gold::Icf::Reloc_info>,var_16::var_3<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,_gold::Icf::Reloc_info>var_5>,var_16::__detail::_Select1st,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,_gold::Section_id_hash,var_16::__detail::_Mod_range_hashing,var_16::__detail::_Default_ranged_hash,var_16::__detail::_Prime_rehash_policy,var_16::__detail::var_31<true,var_9,var_32>,var_32>
               ::operator[](*(_Map_base<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<const_std::pair<var_15::type_13*,_unsigned_int>,_gold::Icf::Reloc_info>,var_16::var_3<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,_gold::Icf::Reloc_info>var_5>,var_16::__detail::_Select1st,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,_gold::Section_id_hash,var_16::__detail::_Mod_range_hashing,var_16::__detail::_Default_ranged_hash,var_16::__detail::_Prime_rehash_policy,var_16::__detail::var_31<true,var_9,var_32>,var_32>
                              **)((int)var_23 + -0x10),*(type_29 **)((int)var_23 + -0xc));
    local_f8 = &local_fc->symbol_info;
    local_104 = &local_fc->reloc_addend_size_info;
    local_100 = &local_fc->addend_info;
    local_f4 = &local_fc->offset_info;
    var_19 = *(int *)local_e4;
    local_d9 = '\x01';
  }
  pTVar16 = local_b0;
  if (*(int *)(var_19 + 8) == 0) {
    *(type_9 *)((int)var_23 + -4) = 0;
    *(int *)((int)var_23 + -8) = var_20 + -0x11dc58;
    *(type_9 *)((int)var_23 + -0xc) = 0x5c;
    *(int *)((int)var_23 + -0x10) = var_20 + -0x131d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */
    *(type_15 **)((int)var_23 + -0x14) = &LAB_000786bc;
    var_12(*(char **)((int)var_23 + -0x10),*(int *)((int)var_23 + -0xc),
                        *(char **)((int)var_23 + -8));
  }
  if (*(int *)(*(int *)(var_19 + 8) + 0x5934) == 2) {
    AVar13 = local_b0->invalid_address;
    *(var_2<64,var_9> **)((int)var_23 + -0x10) = local_b0;
    var_34 = *(type_3 **)((int)AVar13 + 0x48);
    *(type_9 *)((int)var_23 + -0x14) = 0x7831b;
    var_33 = (*var_34)();
    if (var_33 != '\0') {
      var_19 = (int)pTVar16->invalid_address;
      var_34 = *(type_3 **)(var_19 + 8);
      if (var_34 == (type_3 *)(var_20 + -0x36d580)) {
        var_34 = *(type_3 **)(var_19 + 0x4c);
        var_26 = var_34 < (type_3 *)(var_20 - 0x36d4c0U);
        var_35 = var_34 == (type_3 *)(var_20 - 0x36d4c0U);
        if (var_35) {
          var_19 = 0xc;
          var_25 = (type_10 *)(var_20 + -0x11c39e);
          _Var33 = src_section_name._M_dataplus;
          do {
            if (var_19 == 0) break;
            var_19 = var_19 + -1;
            var_26 = *var_25 < (type_10)*_Var33._M_p;
            var_35 = *var_25 == *_Var33._M_p;
            var_25 = var_25 + (type_11)bVar38 * -2 + 1;
            _Var33._M_p = (type_2)((type_10 *)_Var33._M_p + (type_11)bVar38 * -2 + 1);
          } while (var_35);
          var_27 = false;
          var_26 = (!var_26 && !var_35) == var_26;
          if (!var_26) {
            var_19 = 0x11;
            var_25 = (type_10 *)(var_20 + -0x11c391);
            _Var33 = src_section_name._M_dataplus;
            do {
              if (var_19 == 0) break;
              var_19 = var_19 + -1;
              var_27 = *var_25 < (type_10)*_Var33._M_p;
              var_26 = *var_25 == *_Var33._M_p;
              var_25 = var_25 + (type_11)bVar38 * -2 + 1;
              _Var33._M_p = (type_2)((type_10 *)_Var33._M_p + (type_11)bVar38 * -2 + 1);
            } while (var_26);
            var_35 = false;
            var_26 = (!var_27 && !var_26) == var_27;
            if (!var_26) {
              var_19 = 0xc;
              var_25 = (type_10 *)(var_20 + -0x11c37f);
              _Var33 = src_section_name._M_dataplus;
              do {
                if (var_19 == 0) break;
                var_19 = var_19 + -1;
                var_35 = *var_25 < (type_10)*_Var33._M_p;
                var_26 = *var_25 == *_Var33._M_p;
                var_25 = var_25 + (type_11)bVar38 * -2 + 1;
                _Var33._M_p = (type_2)((type_10 *)_Var33._M_p + (type_11)bVar38 * -2 + 1);
              } while (var_26);
              var_27 = false;
              var_26 = (!var_35 && !var_26) == var_35;
              if (!var_26) {
                var_19 = 0x11;
                var_25 = (type_10 *)(var_20 + -0x11c372);
                _Var33 = src_section_name._M_dataplus;
                do {
                  if (var_19 == 0) break;
                  var_19 = var_19 + -1;
                  var_27 = *var_25 < (type_10)*_Var33._M_p;
                  var_26 = *var_25 == *_Var33._M_p;
                  var_25 = var_25 + (type_11)bVar38 * -2 + 1;
                  _Var33._M_p = (type_2)((type_10 *)_Var33._M_p + (type_11)bVar38 * -2 + 1);
                } while (var_26);
                var_35 = false;
                var_26 = (!var_27 && !var_26) == var_27;
                if (!var_26) {
                  var_19 = 9;
                  var_25 = (type_10 *)(var_20 + -0x11c360);
                  _Var33 = src_section_name._M_dataplus;
                  do {
                    if (var_19 == 0) break;
                    var_19 = var_19 + -1;
                    var_35 = *var_25 < (type_10)*_Var33._M_p;
                    var_26 = *var_25 == *_Var33._M_p;
                    var_25 = var_25 + (type_11)bVar38 * -2 + 1;
                    _Var33._M_p = (type_2)((type_10 *)_Var33._M_p + (type_11)bVar38 * -2 + 1);
                  } while (var_26);
                  local_da = (!var_35 && !var_26) != var_35;
                  goto LAB_00077807;
                }
              }
            }
          }
          goto LAB_00077800;
        }
        *(type_2 *)((int)var_23 + -0xc) = src_section_name._M_dataplus._M_p;
        *(var_2<64,var_9> **)((int)var_23 + -0x10) = local_b0;
        *(type_9 *)((int)var_23 + -0x14) = 0x78586;
        local_da = (bool)(*var_34)();
      }
      else {
        *(type_2 *)((int)var_23 + -0xc) = src_section_name._M_dataplus._M_p;
        *(var_2<64,var_9> **)((int)var_23 + -0x10) = local_b0;
                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */
        *(type_9 *)((int)var_23 + -0x14) = 0x7856c;
        local_da = (bool)(*var_34)();
      }
      goto LAB_00077807;
    }
  }
LAB_00077800:
  local_da = false;
LAB_00077807:
  if (target != (var_2<64,var_9> *)0x0) {
    local_e8 = (type_8 **)0x0;
    local_f0 = local_a4;
    local_b0 = (var_2<64,var_9> *)0x0;
    local_110 = &__node_gen;
    puVar30 = var_23;
    do {
      pOVar15 = local_c0;
      local_d8 = (param_2->namepool_).string_set_._M_h._M_buckets;
      local_b8 = (type_2)(param_2->namepool_).string_set_._M_h._M_element_count;
      pSVar4 = (var_1<64,var_9> *)(param_2->namepool_).string_set_._M_h._M_bucket_count
      ;
      var_28 = (type_13 *)(param_2->namepool_).string_set_._M_h._M_before_begin._M_nxt;
      if (pSVar4 < src_obj) {
        if (src_indx == 0) {
          *(int *)((int)puVar30 + -8) = var_20 + -0x11e2b4;
          *(type_9 *)((int)puVar30 + -0xc) = 0xea;
          *(int *)((int)puVar30 + -0x10) = var_20 + -0x11cf41;
                    /* WARNING: Subroutine does not return */
          *(type_9 *)((int)puVar30 + -0x14) = 0x785a9;
          var_12(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                              *(char **)((int)puVar30 + -8));
        }
        var_19 = src_indx + (int)pSVar4 * 0x18;
        local_b4 = (type_24 *)(type_11)*(ushort *)(var_19 + 6);
        var_23 = puVar30;
        if (local_b4 < (type_24 *)0xff00) {
LAB_000779f0:
          local_cc = *(type_7 **)(var_19 + 8);
          local_c8 = *(type_11 *)(var_19 + 0xc);
          local_d4 = (int)&(var_28->super_Object)._vptr_Object +
                     (int)&local_cc->output_lists_[0].
                           super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>
          ;
          local_d0 = local_b8 +
                     (type_11)CARRY4((type_11)var_28,(type_11)local_cc) + *(type_11 *)(var_19 + 0xc);
          if (local_d9 != '\0') {
            src_id.first = (type_13 *)local_c0;
            src_id.second = (type_11)local_b4;
            *(type_6 **)((int)puVar30 + -0xc) = &src_id;
            *(type_20 **)((int)puVar30 + -0x10) = local_fc;
            local_c4 = &src_id;
            *(type_9 *)((int)puVar30 + -0x14) = 0x77a51;
            std::
            vector<std::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>
            ::emplace_back<std::pair<var_15::type_13*,_unsigned_int>var_5>
                      (*(vector<std::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>
                         **)((int)puVar30 + -0x10),
                       *(pair<var_15::type_13*,_unsigned_int> **)((int)puVar30 + -0xc));
            var_26 = true;
            if ((*(type_10 *)(var_19 + 4) & 0xf) != 3) goto LAB_000778c8;
LAB_00077a68:
            *(type_6 **)((int)puVar30 + -0xc) = local_c4;
            *(type_21 **)((int)puVar30 + -0x10) = local_f8;
            src_id.first = (type_13 *)0xffffffff;
            *(type_9 *)((int)puVar30 + -0x14) = 0x77a83;
            std::vector<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5>::emplace_back<var_15::Symbol*>
                      (*(vector<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5> **)
                        ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));
            goto LAB_000778e3;
          }
        }
        else {
          if (local_b4 == (type_24 *)0xffff) {
            ppOVar20 = local_c0->output_lists_[4].
                       super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>.
                       _M_impl._M_start;
            if (ppOVar20 == (type_2)0x0) {
              ppOVar20 = local_c0->output_lists_[0].
                         super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>
                         ._M_impl._M_start;
              *(type_7 **)((int)puVar30 + -0x10) = local_c0;
              var_17 = ppOVar20[0x1b];
              *(type_9 *)((int)puVar30 + -0x14) = 0x7816f;
              ppOVar20 = (type_2)(*(type_3 *)var_17)();
              pOVar15->output_lists_[4].
              super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>._M_impl.
              _M_start = ppOVar20;
            }
            *(var_1<64,var_9> **)((int)puVar30 + -8) = pSVar4;
            *(type_7 **)((int)puVar30 + -0xc) = local_c0;
            *(type_2 *)((int)puVar30 + -0x10) = ppOVar20;
            *(type_9 *)((int)puVar30 + -0x14) = 0x7809f;
            local_b4 = (type_24 *)
                       Xindex::sym_xindex_to_shndx
                                 (*(Xindex **)((int)puVar30 + -0x10),
                                  *(var_18 **)((int)puVar30 + -0xc),*(type_11 *)((int)puVar30 + -8));
            goto LAB_000779f0;
          }
          local_cc = *(type_7 **)(var_19 + 8);
          local_c8 = *(type_11 *)(var_19 + 0xc);
          local_d4 = (int)&(var_28->super_Object)._vptr_Object +
                     (int)&local_cc->output_lists_[0].
                           super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>
          ;
          local_d0 = local_b8 +
                     (type_11)CARRY4((type_11)var_28,(type_11)local_cc) + *(type_11 *)(var_19 + 0xc);
          if (local_d9 == '\0') goto LAB_00077980;
          src_id.first = (type_13 *)0x0;
          *(type_6 **)((int)puVar30 + -0xc) = &src_id;
          *(type_20 **)((int)puVar30 + -0x10) = local_fc;
          src_id.second = 0;
          local_c4 = &src_id;
                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */
          *(type_9 *)((int)puVar30 + -0x14) = 0x778b4;
          std::
          vector<std::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>
          ::emplace_back<std::pair<var_15::type_13*,_unsigned_int>var_5>
                    (*(vector<std::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>
                       **)((int)puVar30 + -0x10),
                     *(pair<var_15::type_13*,_unsigned_int> **)((int)puVar30 + -0xc));
          var_26 = false;
          if ((*(type_10 *)(var_19 + 4) & 0xf) == 3) goto LAB_00077a68;
LAB_000778c8:
          *(type_6 **)((int)puVar30 + -0xc) = local_c4;
          *(type_21 **)((int)puVar30 + -0x10) = local_f8;
          src_id.first = (type_13 *)0x0;
          *(type_9 *)((int)puVar30 + -0x14) = 0x778e3;
          std::vector<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5>::emplace_back<var_15::Symbol*>
                    (*(vector<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5> **)
                      ((int)puVar30 + -0x10),*(Symbol ***)((int)puVar30 + -0xc));
LAB_000778e3:
          *(type_6 **)((int)puVar30 + -0xc) = local_c4;
          *(type_19 **)((int)puVar30 + -0x10) = local_100;
          src_id.first = (type_13 *)local_cc;
          src_id.second = local_c8;
          local_2c = var_28;
          local_28._M_p = local_b8;
          *(type_9 *)((int)puVar30 + -0x14) = 0x7791e;
          std::
          vector<std::pair<long_long_int,_long_long_int>,var_16::var_3<std::pair<long_long_int,_long_long_int>var_5>var_5>
          ::emplace_back<std::pair<long_long_int,_long_long_int>var_5>
                    (*(vector<std::pair<long_long_int,_long_long_int>,var_16::var_3<std::pair<long_long_int,_long_long_int>var_5>var_5>
                       **)((int)puVar30 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));
          if (param_2->script_options_ != (Script_options *)0x0) {
            *(int *)((int)puVar30 + -8) = var_20 + -0x11de3c;
            *(type_9 *)((int)puVar30 + -0xc) = 0xc0;
            *(int *)((int)puVar30 + -0x10) = var_20 + -0x11cc44;
                    /* WARNING: Subroutine does not return */
            *(type_9 *)((int)puVar30 + -0x14) = 0x78648;
            var_12(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                                *(char **)((int)puVar30 + -8));
          }
          src_id.first = (type_13 *)param_2->number_of_input_files_;
          src_id.second = 0;
          puVar3 = (local_f4->
                   super__Vector_base<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5>
                   )._M_impl._M_finish;
          if (puVar3 == (local_f4->
                        super__Vector_base<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5>
                        )._M_impl._M_end_of_storage) {
            *(type_6 **)((int)puVar30 + -8) = local_c4;
            *(type_2 *)((int)puVar30 + -0xc) = puVar3;
            *(type_22 **)((int)puVar30 + -0x10) = local_f4;
            *(type_9 *)((int)puVar30 + -0x14) = 0x78155;
            std::vector<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5>::
            _M_realloc_insert<long_long_unsigned_int_const&>
                      (*(vector<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5> **)
                        ((int)puVar30 + -0x10),(iterator)*(type_27 **)((int)puVar30 + -0xc),
                       *(type_27 **)((int)puVar30 + -8));
          }
          else {
            *(type_13 **)puVar3 = (type_13 *)param_2->number_of_input_files_;
            *(type_9 *)((int)puVar3 + 4) = 0;
            (local_f4->
            super__Vector_base<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5>).
            _M_impl._M_finish = puVar3 + 1;
          }
          dst_id.first = (type_13 *)0x0;
          *(type_6 **)((int)puVar30 + -0xc) = &dst_id;
          *(type_18 **)((int)puVar30 + -0x10) = local_104;
          *(type_9 *)((int)puVar30 + -0x14) = 0x77975;
          std::vector<unsigned_int,var_16::var_3<unsigned_int>var_5>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,var_16::var_3<unsigned_int>var_5> **)((int)puVar30 + -0x10)
                     ,*(type_11 **)((int)puVar30 + -0xc));
          if (!var_26) goto LAB_00077980;
        }
        if ((((local_da != false) && ((*(type_10 *)(var_19 + 4) & 0xf) != 1)) &&
            (var_28 = (type_13 *)
                        local_c0->output_lists_[0x1c].
                        super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>.
                        _M_impl._M_start, ((type_11)var_28 & 3) != 1)) &&
           (((type_23 *)0x17 < local_d8 || ((0x843f84U >> ((type_11)local_d8 & 0x1f) & 1) == 0)))
           ) {
          var_28 = *(type_13 **)(var_30 + 0x15c);
          local_7c = local_c0;
          local_78 = (type_11)*(ushort *)(var_19 + 6);
          *(type_9 *)((int)puVar30 + -0xc) = 1;
          *(type_9 *)((int)puVar30 + -0x10) = 0;
          __node_gen_2._M_h = (__hashtable_alloc *)&(var_28->super_Object).compressed_sections_;
          *(type_16 **)((int)puVar30 + -0x14) = &__node_gen_2;
          *(type_7 ***)((int)puVar30 + -0x18) = &local_7c;
          *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_2._M_h;
          *(type_15 **)((int)puVar30 + -0x20) = local_f0;
          *(type_9 *)((int)puVar30 + -0x24) = 0x77ddf;
          std::
          _Hashtable<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::__detail::_Identity,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,_gold::Section_id_hash,var_16::__detail::_Mod_range_hashing,var_16::__detail::_Default_ranged_hash,var_16::__detail::_Prime_rehash_policy,var_16::__detail::var_31<true,var_32,var_32>var_5>
          ::
          _M_insert<std::pair<var_15::type_13*,_unsigned_int>,var_16::__detail::_AllocNode<std::var_3<std::__detail::_Hash_node<std::pair<var_15::type_13*,_unsigned_int>,var_32>var_5>var_5>var_5>
                    ();
          puVar30 = (type_9 *)((int)puVar30 + -4);
        }
        var_23 = puVar30;
        if (symtab != local_b4) {
          local_cc = local_c0;
LAB_00077afb:
          if (*(int *)(*(int *)local_e4 + 8) == 0) {
            puVar30[-2] = var_20 + -0x11dc58;
            puVar30[-3] = 0x5c;
            puVar30[-4] = var_20 + -0x131d93;
                    /* WARNING: Subroutine does not return */
            puVar30[-5] = 0x785c7;
            var_12((char *)puVar30[-4],puVar30[-3],(char *)puVar30[-2]);
          }
          var_23 = puVar30;
          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {
            pRVar34 = *(type_13 **)(var_30 + 0x158);
            src_id_1.first = (type_13 *)local_c0;
            src_id_1.second = (type_11)symtab;
            pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;
            dst_id.first = (type_13 *)local_cc;
            dst_id.second = (type_11)local_b4;
            pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);
            if (pcVar5 == (char *)0x0) {
LAB_00077ba0:
              puVar30[-4] = &local_8c;
              local_8c = &src_id_1;
              puVar30[-5] = 0x77bc1;
              std::
              _Rb_tree<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>,var_16::_Select1st<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>,var_16::less<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>var_5>
              ::
              _M_emplace_hint_unique<const_std::piecewise_construct_t&,var_16::tuple<const_std::pair<var_15::type_13*,_unsigned_int>&>,var_16::tuple<>var_5>
                        ((_Rb_tree<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>,var_16::_Select1st<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>,var_16::less<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>var_5>
                          *)puVar30[-4],(_Base_ptr)puVar30[-3],
                         (tuple<const_std::pair<var_15::type_13*,_unsigned_int>&> *)puVar30[-2],
                         (tuple<> *)puVar30[-1],(piecewise_construct_t *)*puVar30);
              pcVar24 = local_a8;
            }
            else {
              var_28 = pRVar34;
              pcVar23 = pcVar1;
              do {
                while ((pcVar24 = pcVar5, local_c0 <= *(type_7 **)(pcVar24 + 0x10) &&
                       ((local_c0 != *(type_7 **)(pcVar24 + 0x10) ||
                        (symtab <= *(type_24 **)(pcVar24 + 0x14)))))) {
                  pcVar5 = *(char **)(pcVar24 + 8);
                  pcVar23 = pcVar24;
                  if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077b7c;
                }
                pcVar12 = pcVar24 + 0xc;
                pcVar5 = *(char **)pcVar12;
                pcVar24 = pcVar23;
              } while (*(char **)pcVar12 != (char *)0x0);
LAB_00077b7c:
              if (((pcVar24 == pcVar1) || (local_c0 < *(type_7 **)(pcVar24 + 0x10))) ||
                 ((local_c0 == *(type_7 **)(pcVar24 + 0x10) &&
                  (symtab < *(type_24 **)(pcVar24 + 0x14))))) goto LAB_00077ba0;
            }
            __node_gen._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);
            puVar30[-3] = 1;
            puVar30[-4] = 0;
            puVar30[-5] = local_110;
            puVar30[-6] = &dst_id;
            puVar30[-7] = __node_gen._M_h;
            puVar30[-8] = local_f0;
            puVar30[-9] = 0x77bf0;
            std::
            _Hashtable<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::__detail::_Identity,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,_gold::Section_id_hash,var_16::__detail::_Mod_range_hashing,var_16::__detail::_Default_ranged_hash,var_16::__detail::_Prime_rehash_policy,var_16::__detail::var_31<true,var_32,var_32>var_5>
            ::
            _M_insert<const_std::pair<var_15::type_13*,_unsigned_int>&,var_16::__detail::_AllocNode<std::var_3<std::__detail::_Hash_node<std::pair<var_15::type_13*,_unsigned_int>,var_32>var_5>var_5>var_5>
                      ();
            var_19 = var_30;
            piVar6 = *(int **)(*(int *)local_e4 + 0xc);
            if (piVar6 == (int *)0x0) {
              puVar30[-3] = var_20 + -0x11dfa8;
              puVar30[-4] = 0x73;
              puVar30[-5] = var_20 + -0x131d93;
                    /* WARNING: Subroutine does not return */
              puVar30[-6] = 0x78627;
              var_12((char *)puVar30[-5],puVar30[-4],(char *)puVar30[-3]);
            }
            iVar7 = *piVar6;
            puVar30[-2] = local_d0;
            puVar30[-3] = local_d4;
            puVar30[-4] = local_b4;
            puVar30[-5] = local_cc;
            puVar30[-6] = symtab;
            puVar30[-7] = local_c0;
            puVar30[-8] = var_30;
            puVar30[-9] = piVar6;
            var_34 = *(type_3 **)(iVar7 + 0x104);
            puVar30[-10] = 0x77c37;
            (*var_34)();
            pp_Var19 = local_e8;
            var_23 = puVar30 + -1;
            if (local_e8 != (type_8 **)0x0) {
              var_19 = *(int *)(var_19 + 0x158);
              puVar30[-5] = local_e8;
              local_c4 = &src_id;
              var_28 = (type_13 *)&local_2c;
              src_id.first = (type_13 *)&local_2c;
              puVar30[-6] = 0x77c74;
              var_22 = var_21((char *)puVar30[-5]);
              pSVar14 = local_c4;
              puVar30[-2] = 0;
              puVar30[-3] = (type_10 *)((int)pp_Var19 + var_22);
              puVar30[-4] = pp_Var19;
              puVar30[-5] = local_c4;
              puVar30[-6] = 0x77c89;
              std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>::
              var_13<var_14*>();
              puVar30[-3] = pSVar14;
              puVar30[-4] = var_19 + 0x44;
              puVar30[-5] = &local_ac;
              puVar30[-6] = 0x77c9d;
              std::
              _Rb_tree<std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>,var_16::pair<const_std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>,var_16::_Select1st<std::pair<const_std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>,var_16::less<std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>var_5>,var_16::var_3<std::pair<const_std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>var_5>
              ::find((_Rb_tree<std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>,var_16::pair<const_std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>,var_16::_Select1st<std::pair<const_std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>,var_16::less<std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>var_5>,var_16::var_3<std::pair<const_std::__cxx11::basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>var_5>
                      *)puVar30[-5],
                     (basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5> *)
                     puVar30[-4]);
              p_Var9 = local_ac;
              if (src_id.first != var_28) {
                puVar30[-6] = src_id.first;
                puVar30[-7] = 0x77cc0;
                var_29((void *)puVar30[-6]);
              }
              pRVar34 = *(type_13 **)(var_30 + 0x158);
              var_23 = puVar30 + -2;
              if (p_Var9 != (type_4 *)&pRVar34->object_merge_map_) {
                pcVar1 = (pRVar34->super_Object).name_.field_2._M_local_buf + 8;
                src_id.second = (type_11)symtab;
                pcVar5 = *(char **)((int)&(pRVar34->super_Object).name_.field_2 + 0xc);
                src_id.first = (type_13 *)local_c0;
                if (pcVar5 == (char *)0x0) {
LAB_00078190:
                  puVar30[-6] = &local_88;
                  local_88 = local_c4;
                  puVar30[-7] = 0x781b4;
                  std::
                  _Rb_tree<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>,var_16::_Select1st<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>,var_16::less<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>var_5>
                  ::
                  _M_emplace_hint_unique<const_std::piecewise_construct_t&,var_16::tuple<const_std::pair<var_15::type_13*,_unsigned_int>&>,var_16::tuple<>var_5>
                            ((_Rb_tree<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>,var_16::_Select1st<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>,var_16::less<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<const_std::pair<var_15::type_13*,_unsigned_int>,var_16::unordered_set<std::pair<var_15::type_13*,_unsigned_int>,_gold::Section_id_hash,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>var_5>var_5>var_5>
                              *)puVar30[-6],(_Base_ptr)puVar30[-5],
                             (tuple<const_std::pair<var_15::type_13*,_unsigned_int>&> *)puVar30[-4],
                             (tuple<> *)puVar30[-3],(piecewise_construct_t *)puVar30[-2]);
                  pcVar24 = local_a8;
                }
                else {
                  var_28 = pRVar34;
                  pcVar23 = pcVar1;
                  do {
                    while ((pcVar24 = pcVar5, local_c0 <= *(type_7 **)(pcVar24 + 0x10) &&
                           ((local_c0 != *(type_7 **)(pcVar24 + 0x10) ||
                            (symtab <= *(type_24 **)(pcVar24 + 0x14)))))) {
                      pcVar5 = *(char **)(pcVar24 + 8);
                      pcVar23 = pcVar24;
                      if (*(char **)(pcVar24 + 8) == (char *)0x0) goto LAB_00077d27;
                    }
                    pcVar12 = pcVar24 + 0xc;
                    pcVar5 = *(char **)pcVar12;
                    pcVar24 = pcVar23;
                  } while (*(char **)pcVar12 != (char *)0x0);
LAB_00077d27:
                  if (((pcVar24 == pcVar1) || (local_c0 < *(type_7 **)(pcVar24 + 0x10))) ||
                     ((local_c0 == *(type_7 **)(pcVar24 + 0x10) &&
                      (symtab < *(type_24 **)(pcVar24 + 0x14))))) goto LAB_00078190;
                }
                var_23 = puVar30 + -2;
                puVar30 = puVar30 + -2;
                for (p_Var9 = p_Var9[0xc]._M_nxt; p_Var9 != (type_4 *)0x0;
                    p_Var9 = p_Var9->_M_nxt) {
                  *(type_9 *)((int)puVar30 + -0xc) = 1;
                  *(type_9 *)((int)puVar30 + -0x10) = 0;
                  *(type_16 **)((int)puVar30 + -0x14) = &__node_gen_1;
                  *(type_4 **)((int)puVar30 + -0x18) = p_Var9 + 1;
                  *(__hashtable_alloc **)((int)puVar30 + -0x1c) =
                       (__hashtable_alloc *)(pcVar24 + 0x18);
                  *(type_15 **)((int)puVar30 + -0x20) = local_f0;
                  *(type_9 *)((int)puVar30 + -0x24) = 0x77d7e;
                  __node_gen_1._M_h = (__hashtable_alloc *)(pcVar24 + 0x18);
                  std::
                  _Hashtable<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::__detail::_Identity,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,_gold::Section_id_hash,var_16::__detail::_Mod_range_hashing,var_16::__detail::_Default_ranged_hash,var_16::__detail::_Prime_rehash_policy,var_16::__detail::var_31<true,var_32,var_32>var_5>
                  ::
                  _M_insert<const_std::pair<var_15::type_13*,_unsigned_int>&,var_16::__detail::_AllocNode<std::var_3<std::__detail::_Hash_node<std::pair<var_15::type_13*,_unsigned_int>,var_32>var_5>var_5>var_5>
                            ();
                  var_23 = (type_9 *)((int)puVar30 + -4);
                  puVar30 = (type_9 *)((int)puVar30 + -4);
                }
              }
            }
          }
        }
      }
      else {
        pSVar10 = (var_1<64,var_9> *)
                  local_c0->output_lists_[0xe].
                  super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>.
                  _M_impl._M_end_of_storage;
        if (pSVar4 < pSVar10) {
          src_id_1.first = (type_13 *)0x0;
LAB_000780d7:
          *(int *)((int)puVar30 + -8) = var_20 + -0x11e2b4;
          *(type_9 *)((int)puVar30 + -0xc) = 0x11c;
          *(int *)((int)puVar30 + -0x10) = var_20 + -0x11cf41;
                    /* WARNING: Subroutine does not return */
          *(undefined **)((int)puVar30 + -0x14) = &UNK_000780f8;
          var_12(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                              *(char **)((int)puVar30 + -8));
        }
        uVar28 = (int)pSVar4 - (int)pSVar10;
        ppOVar20 = local_c0->output_lists_[0xf].
                   super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>.
                   _M_impl._M_end_of_storage;
        local_b4 = (type_24 *)
                   local_c0->output_lists_[0x10].
                   super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>.
                   _M_impl._M_start;
        if ((type_11)((int)local_b4 - (int)ppOVar20 >> 2) <= uVar28) {
          *(int *)((int)puVar30 + -8) = var_20 + -0x11dcdc;
          *(type_9 *)((int)puVar30 + -0xc) = 0x8ad;
          *(int *)((int)puVar30 + -0x10) = var_20 + -0x11d1b8;
                    /* WARNING: Subroutine does not return */
          *(type_9 *)((int)puVar30 + -0x14) = 0x78609;
          var_12(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                              *(char **)((int)puVar30 + -8));
        }
        src_id_1.first = (type_13 *)ppOVar20[uVar28];
        if (src_id_1.first == (type_13 *)0x0) goto LAB_000780d7;
        if ((((src_id_1.first)->super_Object).shnum_ & 0x100000) != 0) {
          *(type_13 **)((int)puVar30 + -0xc) = src_id_1.first;
          *(int *)((int)puVar30 + -0x10) = var_30;
          *(type_9 *)((int)puVar30 + -0x14) = 0x780c5;
          src_id_1.first =
               (type_13 *)
               type_24::resolve_forwards
                         (*(type_24 **)((int)puVar30 + -0x10),*(Symbol **)((int)puVar30 + -0xc)
                         );
        }
        if ((((src_id_1.first)->super_Object).shnum_ & 0x70000) == 0) {
          local_10c = (type_13 *)((src_id_1.first)->super_Object).xindex_;
          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;
          local_cc = ((anon_union_4_3_b0f6f408_for_u1_ *)
                     &((src_id_1.first)->super_Object).name_._M_string_length)->output_segment;
          local_d4 = (int)&(var_28->super_Object)._vptr_Object +
                     (int)&(local_10c->super_Object)._vptr_Object;
          local_d0 = local_b8 + (int)local_108 + CARRY4((type_11)var_28,(type_11)local_10c);
          if (((type_11)local_cc->output_lists_[3].
                     super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>.
                     _M_impl._M_end_of_storage & 1) == 0) {
            local_b4 = (type_24 *)
                       ((src_id_1.first)->super_Object).name_.field_2._M_allocated_capacity;
            bVar26 = (type_10)((src_id_1.first)->super_Object).shnum_ & 0xf;
            var_24 = *(type_10 *)((int)&((src_id_1.first)->super_Object).shnum_ + 3) >> 5 & 1;
            var_26 = bVar26 < 2;
            var_35 = bVar26 == 2;
            if (var_35) {
              var_26 = false;
              var_35 = local_da == false;
              if (!var_35) {
                if (var_24 != 0) {
                  local_c4 = (type_6 *)
                             local_c0->output_lists_[0x1c].
                             super__Vector_base<var_15::type_1*,var_16::var_3<var_15::type_1*>var_5>
                             ._M_impl._M_start;
                  uVar28 = (type_11)local_c4 & 3;
                  var_26 = uVar28 == 0;
                  var_35 = uVar28 == 1;
                  if ((var_35) ||
                     ((var_35 = local_d8 == (type_23 *)0x17, local_d8 < (type_23 *)0x18
                      && (var_26 = (0x843f84U >> ((type_11)local_d8 & 0x1f) & 1) != 0, var_26))))
                  goto LAB_00077ec0;
                }
                local_c4 = *(type_6 **)(var_30 + 0x15c);
                *(type_9 *)((int)puVar30 + -0xc) = 1;
                *(type_9 *)((int)puVar30 + -0x10) = 0;
                *(type_16 **)((int)puVar30 + -0x14) = &__node_gen_3;
                *(type_7 ***)((int)puVar30 + -0x18) = &local_84;
                __node_gen_3._M_h = (__hashtable_alloc *)&local_c4[6].second;
                *(__hashtable_alloc **)((int)puVar30 + -0x1c) = __node_gen_3._M_h;
                *(type_15 **)((int)puVar30 + -0x20) = local_f0;
                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */
                *(type_9 *)((int)puVar30 + -0x24) = 0x78301;
                local_84 = local_cc;
                local_80 = local_b4;
                std::
                _Hashtable<std::pair<var_15::type_13*,_unsigned_int>,var_16::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>,var_16::__detail::_Identity,var_16::equal_to<std::pair<var_15::type_13*,_unsigned_int>var_5>,_gold::Section_id_hash,var_16::__detail::_Mod_range_hashing,var_16::__detail::_Default_ranged_hash,var_16::__detail::_Prime_rehash_policy,var_16::__detail::var_31<true,var_32,var_32>var_5>
                ::
                _M_insert<std::pair<var_15::type_13*,_unsigned_int>,var_16::__detail::_AllocNode<std::var_3<std::__detail::_Hash_node<std::pair<var_15::type_13*,_unsigned_int>,var_32>var_5>var_5>var_5>
                          ();
                var_26 = (type_15 *)0xffffffe3 < (type_15 *)((int)puVar30 + -0x20);
                var_35 = puVar30 == (type_9 *)0x4;
                puVar30 = (type_9 *)((int)puVar30 + -4);
              }
            }
          }
          else {
            local_b4 = (type_24 *)0x0;
            var_26 = false;
            var_24 = 0;
            var_35 = true;
            local_cc = (type_7 *)0x0;
          }
        }
        else {
          local_10c = (type_13 *)((src_id_1.first)->super_Object).xindex_;
          local_b4 = (type_24 *)0x0;
          local_108 = ((src_id_1.first)->super_Object).compressed_sections_;
          local_cc = (type_7 *)0x0;
          var_26 = false;
          var_24 = 0;
          var_35 = true;
          local_d4 = (int)&(var_28->super_Object)._vptr_Object +
                     (int)&(local_10c->super_Object)._vptr_Object;
          local_d0 = local_b8 + (int)local_108 + CARRY4((type_11)var_28,(type_11)local_10c);
        }
LAB_00077ec0:
        pp_Var19 = ((src_id_1.first)->super_Object)._vptr_Object;
        var_19 = 8;
        var_25 = (type_10 *)(var_20 + -0x11cf31);
        pp_Var32 = pp_Var19;
        do {
          if (var_19 == 0) break;
          var_19 = var_19 + -1;
          var_26 = *var_25 < *(type_10 *)pp_Var32;
          var_35 = *var_25 == *(type_10 *)pp_Var32;
          var_25 = var_25 + (type_11)bVar38 * -2 + 1;
          pp_Var32 = (type_8 **)((int)pp_Var32 + (type_11)bVar38 * -2 + 1);
        } while (var_35);
        var_27 = false;
        var_26 = (!var_26 && !var_35) == var_26;
        if (var_26) {
          local_e8 = pp_Var19 + 2;
        }
        else {
          var_19 = 7;
          var_25 = (type_10 *)(var_20 + -0x11cf28);
          pp_Var32 = pp_Var19;
          do {
            if (var_19 == 0) break;
            var_19 = var_19 + -1;
            var_27 = *var_25 < *(type_10 *)pp_Var32;
            var_26 = *var_25 == *(type_10 *)pp_Var32;
            var_25 = var_25 + (type_11)bVar38 * -2 + 1;
            pp_Var32 = (type_8 **)((int)pp_Var32 + (type_11)bVar38 * -2 + 1);
          } while (var_26);
          pp_Var19 = (type_8 **)((int)pp_Var19 + 7);
          if ((!var_27 && !var_26) != var_27) {
            pp_Var19 = local_e8;
          }
          local_e8 = pp_Var19;
        }
        if (local_d9 != '\0') {
          if (var_24 == 0) {
            src_id.first = (type_13 *)0x0;
            src_id.second = 0;
          }
          else {
            src_id.first = (type_13 *)local_cc;
            src_id.second = (type_11)local_b4;
          }
          *(type_6 **)((int)puVar30 + -0xc) = &src_id;
          *(type_20 **)((int)puVar30 + -0x10) = local_fc;
          local_c4 = &src_id;
          *(type_9 *)((int)puVar30 + -0x14) = 0x77f29;
          std::
          vector<std::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>
          ::emplace_back<std::pair<var_15::type_13*,_unsigned_int>var_5>
                    (*(vector<std::pair<var_15::type_13*,_unsigned_int>,var_16::var_3<std::pair<var_15::type_13*,_unsigned_int>var_5>var_5>
                       **)((int)puVar30 + -0x10),
                     *(pair<var_15::type_13*,_unsigned_int> **)((int)puVar30 + -0xc));
          ppSVar11 = (local_f8->super__Vector_base<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5>).
                     _M_impl._M_finish;
          if (ppSVar11 ==
              (local_f8->super__Vector_base<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5>)._M_impl.
              _M_end_of_storage) {
            *(type_6 **)((int)puVar30 + -8) = &src_id_1;
            *(type_2 *)((int)puVar30 + -0xc) = ppSVar11;
            *(type_21 **)((int)puVar30 + -0x10) = local_f8;
            *(type_9 *)((int)puVar30 + -0x14) = 0x781fb;
            std::vector<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5>::
            _M_realloc_insert<var_15::Symbol*_const&>
                      (*(vector<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5> **)
                        ((int)puVar30 + -0x10),(iterator)*(Symbol ***)((int)puVar30 + -0xc),
                       *(Symbol ***)((int)puVar30 + -8));
          }
          else {
            *ppSVar11 = (Symbol *)src_id_1.first;
            (local_f8->super__Vector_base<var_15::Symbol*,var_16::var_3<var_15::Symbol*>var_5>)._M_impl.
            _M_finish = ppSVar11 + 1;
          }
          *(type_6 **)((int)puVar30 + -0xc) = local_c4;
          *(type_19 **)((int)puVar30 + -0x10) = local_100;
          src_id.first = local_10c;
          src_id.second = (type_11)local_108;
          local_2c = var_28;
          local_28._M_p = local_b8;
          *(type_9 *)((int)puVar30 + -0x14) = 0x77f82;
          std::
          vector<std::pair<long_long_int,_long_long_int>,var_16::var_3<std::pair<long_long_int,_long_long_int>var_5>var_5>
          ::emplace_back<std::pair<long_long_int,_long_long_int>var_5>
                    (*(vector<std::pair<long_long_int,_long_long_int>,var_16::var_3<std::pair<long_long_int,_long_long_int>var_5>var_5>
                       **)((int)puVar30 + -0x10),
                     *(pair<long_long_int,_long_long_int> **)((int)puVar30 + -0xc));
          if (param_2->script_options_ != (Script_options *)0x0) {
            *(int *)((int)puVar30 + -8) = var_20 + -0x11de3c;
            *(type_9 *)((int)puVar30 + -0xc) = 0xc0;
            *(int *)((int)puVar30 + -0x10) = var_20 + -0x11cc44;
                    /* WARNING: Subroutine does not return */
            *(type_9 *)((int)puVar30 + -0x14) = 0x785e8;
            var_12(*(char **)((int)puVar30 + -0x10),*(int *)((int)puVar30 + -0xc),
                                *(char **)((int)puVar30 + -8));
          }
          src_id.first = (type_13 *)param_2->number_of_input_files_;
          src_id.second = 0;
          puVar3 = (local_f4->
                   super__Vector_base<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5>
                   )._M_impl._M_finish;
          if (puVar3 == (local_f4->
                        super__Vector_base<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5>
                        )._M_impl._M_end_of_storage) {
            *(type_6 **)((int)puVar30 + -8) = local_c4;
            *(type_2 *)((int)puVar30 + -0xc) = puVar3;
            *(type_22 **)((int)puVar30 + -0x10) = local_f4;
            *(type_9 *)((int)puVar30 + -0x14) = 0x781dd;
            std::vector<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5>::
            _M_realloc_insert<long_long_unsigned_int_const&>
                      (*(vector<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5> **)
                        ((int)puVar30 + -0x10),(iterator)*(type_27 **)((int)puVar30 + -0xc),
                       *(type_27 **)((int)puVar30 + -8));
          }
          else {
            *(type_13 **)puVar3 = (type_13 *)param_2->number_of_input_files_;
            *(type_9 *)((int)puVar3 + 4) = 0;
            (local_f4->
            super__Vector_base<long_long_unsigned_int,var_16::var_3<long_long_unsigned_int>var_5>).
            _M_impl._M_finish = puVar3 + 1;
          }
          dst_id.first = (type_13 *)0x0;
          *(type_6 **)((int)puVar30 + -0xc) = &dst_id;
          *(type_18 **)((int)puVar30 + -0x10) = local_104;
          *(type_9 *)((int)puVar30 + -0x14) = 0x77fd9;
          std::vector<unsigned_int,var_16::var_3<unsigned_int>var_5>::emplace_back<unsigned_int>
                    (*(vector<unsigned_int,var_16::var_3<unsigned_int>var_5> **)((int)puVar30 + -0x10)
                     ,*(type_11 **)((int)puVar30 + -0xc));
        }
        var_23 = puVar30;
        if (var_24 != 0) goto LAB_00077afb;
      }
LAB_00077980:
      local_b0 = (var_2<64,var_9> *)((int)&local_b0->invalid_address + 1);
      param_2 = (Layout *)&(param_2->namepool_).string_set_._M_h._M_rehash_policy;
      puVar30 = var_23;
    } while (target != local_b0);
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_4,var_16::char_traits<var_4>,var_16::var_3<var_4>var_5>var_6
       *)src_section_name._M_dataplus._M_p != var_7) {
    *(type_2 *)((int)var_23 + -0x10) = src_section_name._M_dataplus._M_p;
    *(type_9 *)((int)var_23 + -0x14) = 0x78222;
    var_29(*(void **)((int)var_23 + -0x10));
  }
  return;
}


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

void MASKED(byte ****param_1,undefined4 *param_2,int *param_3,byte ****param_4,int param_5)

{
  byte *****pppppbVar1;
  undefined4 *puVar2;
  byte ****ppppbVar3;
  int *piVar4;
  int iVar5;
  code *pcVar6;
  byte ***pppbVar7;
  byte *****pppppbVar8;
  char cVar9;
  size_t sVar10;
  byte ****ppppbVar11;
  undefined4 uVar12;
  byte *pbVar13;
  byte *****extraout_ECX;
  undefined4 extraout_ECX_00;
  byte *****pppppbVar14;
  byte *****pppppbVar15;
  int iVar16;
  undefined4 extraout_ECX_01;
  undefined4 extraout_ECX_02;
  byte bVar17;
  uint uVar18;
  undefined1 *puVar19;
  undefined1 *puVar20;
  byte *pbVar21;
  int unaff_EDI;
  byte ****ppppbVar22;
  byte *****pppppbVar23;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  undefined8 uVar28;
  undefined1 auStack_11c [8];
  byte *local_114;
  byte ****local_110;
  byte ***local_10c;
  byte ***local_108;
  int local_104;
  int local_100;
  int local_fc;
  int local_f8;
  int local_f4;
  undefined1 *local_f0;
  int local_ec;
  byte ***local_e8;
  byte *local_e4;
  int local_e0;
  char local_da;
  char local_d9;
  uint local_d8;
  byte *local_d4;
  int local_d0;
  byte ****local_cc;
  int local_c8;
  byte ****local_c4;
  byte ****local_c0;
  byte ****local_bc;
  int local_b8;
  byte ***local_b4;
  int *local_b0;
  byte ****local_ac;
  byte ****local_a8;
  undefined1 local_a4 [8];
  byte ****local_9c;
  byte ****local_98;
  byte ****local_94;
  byte ****local_90;
  byte ****local_8c;
  byte ****local_88;
  byte ****local_84;
  byte ***local_80;
  byte ****local_7c;
  uint local_78;
  byte ****local_74;
  byte ***local_70;
  byte ****local_6c;
  byte ***local_68;
  int local_64;
  int local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined1 local_50;
  byte *local_4c [2];
  byte local_44 [16];
  byte ****local_34;
  byte ***local_30;
  byte ****local_2c;
  int local_28;
  
  bVar27 = 0;
  uVar28 = FUN_000b484e();
  local_b0 = (int *)((ulonglong)uVar28 >> 0x20);
  local_ec = (int)uVar28;
  local_e0 = unaff_EDI + 0x39c927;
  local_e4 = BYTE_ARRAY_0039ce09 + unaff_EDI + 6;
  local_64 = 0;
  local_60 = 0;
  local_5c = 0;
  local_58 = 0;
  local_54 = 0;
  local_50 = 0;
  if (*(int *)(*(int *)local_e4 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0007869b to 0007869f has its CatchHandler @ 000786bc */
    FUN_000da200(unaff_EDI + 0x26ab94,0x5c,&UNK_0027eccf + unaff_EDI);
  }
  local_c0 = (byte ****)extraout_ECX;
  if (*(int *)(*(int *)(*(int *)local_e4 + 8) + 0x5934) == 0) {
    local_114 = local_44;
    local_4c[0] = local_114;
                    /* try { // try from 00078511 to 0007855a has its CatchHandler @ 000786bc */
    FUN_000a8880(local_4c,unaff_EDI + 0x299add,unaff_EDI + 0x299add);
    puVar19 = auStack_11c;
    uVar12 = extraout_ECX_01;
  }
  else {
    if ((*extraout_ECX)[0x10] == (byte ***)(unaff_EDI + 0x39d57)) {
                    /* try { // try from 0007777d to 00077781 has its CatchHandler @ 000786bc */
      FUN_000b1290(local_4c,extraout_ECX + 0x24,param_1);
      uVar12 = extraout_ECX_00;
    }
    else {
      (*(code *)(*extraout_ECX)[0x10])(local_4c,extraout_ECX,param_1);
      uVar12 = extraout_ECX_02;
    }
    local_114 = local_44;
    puVar19 = &stack0xfffffee0;
  }
  pbVar21 = local_4c[0];
  iVar16 = *(int *)local_e4;
  if (*(int *)(iVar16 + 8) == 0) {
    *(undefined4 *)(puVar19 + -4) = uVar12;
    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;
    *(undefined4 *)(puVar19 + -0xc) = 0x5c;
    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)(puVar19 + -0x14) = 0x78688;
    FUN_000da200();
  }
  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 0) {
LAB_000777af:
    local_d9 = '\0';
    local_104 = 0;
    local_f4 = 0;
    local_100 = 0;
    local_f8 = 0;
    local_fc = 0;
  }
  else {
    local_bc = (byte ****)&local_2c;
    local_34 = local_bc;
    pbVar13 = (byte *)0xffffffff;
    if (local_4c[0] != (byte *)0x0) {
      *(byte **)(puVar19 + -0x10) = local_4c[0];
      *(undefined4 *)(puVar19 + -0x14) = 0x78417;
      sVar10 = strlen(*(char **)(puVar19 + -0x10));
      pbVar13 = pbVar21 + sVar10;
    }
    *(undefined4 *)(puVar19 + -4) = 0;
    *(byte **)(puVar19 + -8) = pbVar13;
    local_c4 = (byte ****)&local_34;
    *(byte **)(puVar19 + -0xc) = pbVar21;
    *(byte *****)(puVar19 + -0x10) = local_c4;
    *(undefined4 *)(puVar19 + -0x14) = 0x7842f;
    FUN_000a8880();
    iVar16 = 5;
    bVar24 = (undefined1 *)0xffffffef < puVar19 + -0x10;
    bVar26 = puVar19 == (undefined1 *)0x0;
    pbVar21 = (byte *)(local_e0 + -0x11d050);
    pppppbVar23 = (byte *****)local_34;
    do {
      if (iVar16 == 0) break;
      iVar16 = iVar16 + -1;
      bVar24 = *pbVar21 < *(byte *)pppppbVar23;
      bVar26 = *pbVar21 == *(byte *)pppppbVar23;
      pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
      pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);
    } while (bVar26);
    bVar25 = false;
    bVar24 = (!bVar24 && !bVar26) == bVar24;
    if (!bVar24) {
      iVar16 = 0xf;
      pbVar21 = (byte *)(local_e0 + -0x11cf51);
      pppppbVar23 = (byte *****)local_34;
      do {
        if (iVar16 == 0) break;
        iVar16 = iVar16 + -1;
        bVar25 = *pbVar21 < *(byte *)pppppbVar23;
        bVar24 = *pbVar21 == *(byte *)pppppbVar23;
        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
        pppppbVar23 = (byte *****)((int)pppppbVar23 + (uint)bVar27 * -2 + 1);
      } while (bVar24);
      if ((!bVar25 && !bVar24) != bVar25) {
        if (local_34 == local_bc) {
          iVar16 = *(int *)local_e4;
        }
        else {
          *(byte *****)(puVar19 + -0x10) = local_34;
          *(undefined4 *)(puVar19 + -0x14) = 0x78539;
          FUN_00248220();
          iVar16 = *(int *)local_e4;
        }
        goto LAB_000777af;
      }
    }
    if (local_34 != local_bc) {
      *(byte *****)(puVar19 + -0x10) = local_34;
      *(undefined4 *)(puVar19 + -0x14) = 0x78664;
      FUN_00248220();
    }
    *(byte *****)(puVar19 + -0xc) = local_c4;
    local_34 = local_c0;
    local_30 = (byte ***)param_1;
    local_bc = *(byte *****)(local_ec + 0x15c);
    *(byte ******)(puVar19 + -0x10) = (byte *****)local_bc + 0x15;
    *(undefined4 *)(puVar19 + -0x14) = 0x784b0;
    local_fc = FUN_000acc50();
    local_f8 = local_fc + 0xc;
    local_100 = local_fc + 0x18;
    local_f4 = local_fc + 0x24;
    local_104 = local_fc + 0x30;
    iVar16 = *(int *)local_e4;
    local_d9 = '\x01';
  }
  piVar4 = local_b0;
  if (*(int *)(iVar16 + 8) == 0) {
    *(undefined4 *)(puVar19 + -4) = 0;
    *(int *)(puVar19 + -8) = local_e0 + -0x11dc58;
    *(undefined4 *)(puVar19 + -0xc) = 0x5c;
    *(int *)(puVar19 + -0x10) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000786b7 to 000786bb has its CatchHandler @ 000786c3 */
    *(undefined1 **)(puVar19 + -0x14) = &LAB_000786bc;
    FUN_000da200();
  }
  if (*(int *)(*(int *)(iVar16 + 8) + 0x5934) == 2) {
    iVar16 = *local_b0;
    *(int **)(puVar19 + -0x10) = local_b0;
    pcVar6 = *(code **)(iVar16 + 0x48);
    *(undefined4 *)(puVar19 + -0x14) = 0x7831b;
    cVar9 = (*pcVar6)();
    if (cVar9 != '\0') {
      pcVar6 = *(code **)(*piVar4 + 8);
      if (pcVar6 != (code *)(local_e0 + -0x36d580)) {
        *(byte **)(puVar19 + -0xc) = local_4c[0];
        *(int **)(puVar19 + -0x10) = local_b0;
                    /* try { // try from 0007856a to 00078687 has its CatchHandler @ 000786c3 */
        *(undefined4 *)(puVar19 + -0x14) = 0x7856c;
        local_da = (*pcVar6)();
        goto LAB_00077807;
      }
      pcVar6 = *(code **)(*piVar4 + 0x4c);
      bVar24 = pcVar6 < (code *)(local_e0 - 0x36d4c0U);
      bVar26 = pcVar6 == (code *)(local_e0 - 0x36d4c0U);
      if (!bVar26) {
        *(byte **)(puVar19 + -0xc) = local_4c[0];
        *(int **)(puVar19 + -0x10) = local_b0;
        *(undefined4 *)(puVar19 + -0x14) = 0x78586;
        local_da = (*pcVar6)();
        goto LAB_00077807;
      }
      iVar16 = 0xc;
      pbVar21 = (byte *)(local_e0 + -0x11c39e);
      pbVar13 = local_4c[0];
      do {
        if (iVar16 == 0) break;
        iVar16 = iVar16 + -1;
        bVar24 = *pbVar21 < *pbVar13;
        bVar26 = *pbVar21 == *pbVar13;
        pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
        pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
      } while (bVar26);
      bVar25 = false;
      bVar24 = (!bVar24 && !bVar26) == bVar24;
      if (!bVar24) {
        iVar16 = 0x11;
        pbVar21 = (byte *)(local_e0 + -0x11c391);
        pbVar13 = local_4c[0];
        do {
          if (iVar16 == 0) break;
          iVar16 = iVar16 + -1;
          bVar25 = *pbVar21 < *pbVar13;
          bVar24 = *pbVar21 == *pbVar13;
          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
          pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
        } while (bVar24);
        bVar26 = false;
        bVar24 = (!bVar25 && !bVar24) == bVar25;
        if (!bVar24) {
          iVar16 = 0xc;
          pbVar21 = (byte *)(local_e0 + -0x11c37f);
          pbVar13 = local_4c[0];
          do {
            if (iVar16 == 0) break;
            iVar16 = iVar16 + -1;
            bVar26 = *pbVar21 < *pbVar13;
            bVar24 = *pbVar21 == *pbVar13;
            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
            pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
          } while (bVar24);
          bVar25 = false;
          bVar24 = (!bVar26 && !bVar24) == bVar26;
          if (!bVar24) {
            iVar16 = 0x11;
            pbVar21 = (byte *)(local_e0 + -0x11c372);
            pbVar13 = local_4c[0];
            do {
              if (iVar16 == 0) break;
              iVar16 = iVar16 + -1;
              bVar25 = *pbVar21 < *pbVar13;
              bVar24 = *pbVar21 == *pbVar13;
              pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
              pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
            } while (bVar24);
            bVar26 = false;
            bVar24 = (!bVar25 && !bVar24) == bVar25;
            if (!bVar24) {
              iVar16 = 9;
              pbVar21 = (byte *)(local_e0 + -0x11c360);
              pbVar13 = local_4c[0];
              do {
                if (iVar16 == 0) break;
                iVar16 = iVar16 + -1;
                bVar26 = *pbVar21 < *pbVar13;
                bVar24 = *pbVar21 == *pbVar13;
                pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
                pbVar13 = pbVar13 + (uint)bVar27 * -2 + 1;
              } while (bVar24);
              local_da = (!bVar26 && !bVar24) != bVar26;
              goto LAB_00077807;
            }
          }
        }
      }
    }
  }
  local_da = '\0';
LAB_00077807:
  if (param_3 != (int *)0x0) {
    local_e8 = (byte ***)0x0;
    local_f0 = local_a4;
    local_110 = (byte ****)&local_90;
    local_b0 = (int *)0x0;
    puVar20 = puVar19;
    do {
      ppppbVar22 = local_c0;
      local_d8 = param_2[2];
      local_b8 = param_2[5];
      ppppbVar3 = (byte ****)param_2[3];
      local_bc = (byte ****)param_2[4];
      if (ppppbVar3 < param_4) {
        if (param_5 == 0) {
          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;
          *(undefined4 *)(puVar20 + -0xc) = 0xea;
          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar20 + -0x14) = 0x785a9;
          FUN_000da200();
        }
        iVar16 = param_5 + (int)ppppbVar3 * 0x18;
        local_b4 = (byte ***)(uint)*(ushort *)(iVar16 + 6);
        puVar19 = puVar20;
        if (local_b4 < (byte ****)0xff00) {
LAB_000779f0:
          local_cc = *(byte *****)(iVar16 + 8);
          local_c8 = *(int *)(iVar16 + 0xc);
          local_d4 = (byte *)((int)local_bc + (int)local_cc);
          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);
          if (local_d9 != '\0') {
            local_34 = local_c0;
            local_30 = local_b4;
            local_c4 = (byte ****)&local_34;
            *(byte *****)(puVar20 + -0xc) = local_c4;
            *(int *)(puVar20 + -0x10) = local_fc;
            *(undefined4 *)(puVar20 + -0x14) = 0x77a51;
            FUN_000aa900();
            bVar24 = true;
            if ((*(byte *)(iVar16 + 4) & 0xf) == 3) goto LAB_00077a68;
LAB_000778c8:
            *(byte *****)(puVar20 + -0xc) = local_c4;
            *(int *)(puVar20 + -0x10) = local_f8;
            local_34 = (byte ****)0x0;
            *(undefined4 *)(puVar20 + -0x14) = 0x778e3;
            FUN_000aafe0();
            goto LAB_000778e3;
          }
        }
        else {
          if ((byte ****)local_b4 == (byte ****)0xffff) {
            ppppbVar11 = (byte ****)local_c0[0xc];
            if (ppppbVar11 == (byte ****)0x0) {
              ppppbVar11 = (byte ****)*local_c0;
              *(byte *****)(puVar20 + -0x10) = local_c0;
              pppbVar7 = ppppbVar11[0x1b];
              *(undefined4 *)(puVar20 + -0x14) = 0x7816f;
              ppppbVar11 = (byte ****)(*(code *)pppbVar7)();
              ppppbVar22[0xc] = (byte ***)ppppbVar11;
            }
            *(byte *****)(puVar20 + -8) = ppppbVar3;
            *(byte *****)(puVar20 + -0xc) = local_c0;
            *(byte *****)(puVar20 + -0x10) = ppppbVar11;
            *(undefined4 *)(puVar20 + -0x14) = 0x7809f;
            local_b4 = (byte ***)FUN_00121c60();
            goto LAB_000779f0;
          }
          local_cc = *(byte *****)(iVar16 + 8);
          local_c8 = *(int *)(iVar16 + 0xc);
          local_d4 = (byte *)((int)local_bc + (int)local_cc);
          local_d0 = local_b8 + local_c8 + (uint)CARRY4((uint)local_bc,(uint)local_cc);
          if (local_d9 == '\0') goto LAB_00077980;
          local_c4 = (byte ****)&local_34;
          local_34 = (byte ****)0x0;
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_fc;
          local_30 = (byte ***)0x0;
                    /* try { // try from 000778af to 000781fa has its CatchHandler @ 000786c3 */
          *(undefined4 *)(puVar20 + -0x14) = 0x778b4;
          FUN_000aa900();
          bVar24 = false;
          if ((*(byte *)(iVar16 + 4) & 0xf) != 3) goto LAB_000778c8;
LAB_00077a68:
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_f8;
          local_34 = (byte ****)0xffffffff;
          *(undefined4 *)(puVar20 + -0x14) = 0x77a83;
          FUN_000aafe0();
LAB_000778e3:
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_100;
          local_34 = local_cc;
          local_30 = (byte ***)local_c8;
          local_2c = local_bc;
          local_28 = local_b8;
          *(undefined4 *)(puVar20 + -0x14) = 0x7791e;
          FUN_000ab1b0();
          pppppbVar23 = (byte *****)*param_2;
          if (param_2[1] != 0) {
            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;
            *(undefined4 *)(puVar20 + -0xc) = 0xc0;
            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar20 + -0x14) = 0x78648;
            FUN_000da200();
          }
          local_30 = (byte ***)0x0;
          puVar2 = *(undefined4 **)(local_f4 + 4);
          local_34 = (byte ****)pppppbVar23;
          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {
            *(byte *****)(puVar20 + -8) = local_c4;
            *(undefined4 **)(puVar20 + -0xc) = puVar2;
            *(int *)(puVar20 + -0x10) = local_f4;
            *(undefined4 *)(puVar20 + -0x14) = 0x78155;
            FUN_000aa950();
          }
          else {
            *puVar2 = pppppbVar23;
            puVar2[1] = 0;
            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;
          }
          local_6c = (byte ****)0x0;
          *(byte ******)(puVar20 + -0xc) = &local_6c;
          *(int *)(puVar20 + -0x10) = local_104;
          *(undefined4 *)(puVar20 + -0x14) = 0x77975;
          FUN_000ab360();
          if (!bVar24) goto LAB_00077980;
        }
        if ((((local_da != '\0') && ((*(byte *)(iVar16 + 4) & 0xf) != 1)) &&
            (local_bc = (byte ****)local_c0[0x54], ((uint)local_bc & 3) != 1)) &&
           ((0x17 < local_d8 || ((0x843f84U >> (local_d8 & 0x1f) & 1) == 0)))) {
          local_bc = *(byte *****)(local_ec + 0x15c);
          local_7c = local_c0;
          local_78 = (uint)*(ushort *)(iVar16 + 6);
          *(undefined4 *)(puVar20 + -0xc) = 1;
          *(undefined4 *)(puVar20 + -0x10) = 0;
          local_9c = (byte ****)((byte *****)local_bc + 0xd);
          *(byte ******)(puVar20 + -0x14) = &local_9c;
          *(byte ******)(puVar20 + -0x18) = &local_7c;
          *(byte *****)(puVar20 + -0x1c) = local_9c;
          *(undefined1 **)(puVar20 + -0x20) = local_f0;
          *(undefined4 *)(puVar20 + -0x24) = 0x77ddf;
          FUN_000a8d90();
          puVar20 = puVar20 + -4;
        }
        puVar19 = puVar20;
        if (param_1 != (byte ****)local_b4) {
          local_cc = local_c0;
LAB_00077afb:
          if (*(int *)(*(int *)local_e4 + 8) == 0) {
            *(int *)(puVar20 + -8) = local_e0 + -0x11dc58;
            *(undefined4 *)(puVar20 + -0xc) = 0x5c;
            *(int *)(puVar20 + -0x10) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar20 + -0x14) = 0x785c7;
            FUN_000da200();
          }
          puVar19 = puVar20;
          if (*(char *)(*(int *)(*(int *)local_e4 + 8) + 0x18b1) != '\0') {
            pppppbVar23 = *(byte ******)(local_ec + 0x158);
            local_74 = local_c0;
            local_70 = (byte ***)param_1;
            local_6c = local_cc;
            local_68 = local_b4;
            pppppbVar8 = (byte *****)pppppbVar23[6];
            pppppbVar14 = pppppbVar23 + 5;
            if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {
LAB_00077ba0:
              local_8c = (byte ****)&local_74;
              *(byte ******)(puVar20 + -0x10) = &local_8c;
              *(undefined4 *)(puVar20 + -0x14) = 0x77bc1;
              FUN_00068840();
              pppppbVar15 = (byte *****)local_a8;
            }
            else {
              do {
                while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||
                       ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {
                  pppppbVar1 = pppppbVar15 + 3;
                  pppppbVar8 = (byte *****)*pppppbVar1;
                  pppppbVar15 = pppppbVar14;
                  if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077b7c;
                }
                pppppbVar8 = (byte *****)pppppbVar15[2];
                pppppbVar14 = pppppbVar15;
              } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);
LAB_00077b7c:
              local_bc = (byte ****)pppppbVar23;
              if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||
                 ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5])))) goto LAB_00077ba0;
            }
            local_90 = (byte ****)(pppppbVar15 + 6);
            *(undefined4 *)(puVar20 + -0xc) = 1;
            *(undefined4 *)(puVar20 + -0x10) = 0;
            *(byte *****)(puVar20 + -0x14) = local_110;
            *(byte ******)(puVar20 + -0x18) = &local_6c;
            *(byte *****)(puVar20 + -0x1c) = local_90;
            *(undefined1 **)(puVar20 + -0x20) = local_f0;
            *(undefined4 *)(puVar20 + -0x24) = 0x77bf0;
            FUN_000a8cd0();
            iVar16 = local_ec;
            piVar4 = *(int **)(*(int *)local_e4 + 0xc);
            if (piVar4 == (int *)0x0) {
              *(int *)(puVar20 + -0xc) = local_e0 + -0x11dfa8;
              *(undefined4 *)(puVar20 + -0x10) = 0x73;
              *(int *)(puVar20 + -0x14) = local_e0 + -0x131d93;
                    /* WARNING: Subroutine does not return */
              *(undefined4 *)(puVar20 + -0x18) = 0x78627;
              FUN_000da200();
            }
            iVar5 = *piVar4;
            *(int *)(puVar20 + -8) = local_d0;
            *(byte **)(puVar20 + -0xc) = local_d4;
            *(byte ****)(puVar20 + -0x10) = local_b4;
            *(byte *****)(puVar20 + -0x14) = local_cc;
            *(byte *****)(puVar20 + -0x18) = param_1;
            *(byte *****)(puVar20 + -0x1c) = local_c0;
            *(int *)(puVar20 + -0x20) = local_ec;
            *(int **)(puVar20 + -0x24) = piVar4;
            pcVar6 = *(code **)(iVar5 + 0x104);
            *(undefined4 *)(puVar20 + -0x28) = 0x77c37;
            (*pcVar6)();
            pppbVar7 = local_e8;
            puVar19 = puVar20 + -4;
            if ((byte ****)local_e8 != (byte ****)0x0) {
              iVar16 = *(int *)(iVar16 + 0x158);
              local_bc = (byte ****)&local_2c;
              *(byte ****)(puVar20 + -0x14) = local_e8;
              local_c4 = (byte ****)&local_34;
              local_34 = local_bc;
              *(undefined4 *)(puVar20 + -0x18) = 0x77c74;
              sVar10 = strlen(*(char **)(puVar20 + -0x14));
              ppppbVar3 = local_c4;
              *(undefined4 *)(puVar20 + -8) = 0;
              *(byte **)(puVar20 + -0xc) = (byte *)((int)pppbVar7 + sVar10);
              *(byte ****)(puVar20 + -0x10) = pppbVar7;
              *(byte *****)(puVar20 + -0x14) = local_c4;
              *(undefined4 *)(puVar20 + -0x18) = 0x77c89;
              FUN_000a8880();
              *(byte *****)(puVar20 + -0xc) = ppppbVar3;
              *(int *)(puVar20 + -0x10) = iVar16 + 0x44;
              *(byte ******)(puVar20 + -0x14) = &local_ac;
              *(undefined4 *)(puVar20 + -0x18) = 0x77c9d;
              FUN_000aaaa0();
              ppppbVar3 = local_ac;
              if (local_34 != local_bc) {
                *(byte *****)(puVar20 + -0x18) = local_34;
                *(undefined4 *)(puVar20 + -0x1c) = 0x77cc0;
                FUN_00248220();
              }
              pppppbVar23 = *(byte ******)(local_ec + 0x158);
              puVar19 = puVar20 + -8;
              if ((byte *****)ppppbVar3 != pppppbVar23 + 0x12) {
                local_30 = (byte ***)param_1;
                local_34 = local_c0;
                pppppbVar8 = (byte *****)pppppbVar23[6];
                pppppbVar14 = pppppbVar23 + 5;
                if ((byte *****)pppppbVar23[6] == (byte *****)0x0) {
LAB_00078190:
                  *(byte ******)(puVar20 + -0x18) = &local_88;
                  local_88 = local_c4;
                  *(undefined4 *)(puVar20 + -0x1c) = 0x781b4;
                  FUN_00068840();
                  pppppbVar15 = (byte *****)local_a8;
                }
                else {
                  do {
                    while ((pppppbVar15 = pppppbVar8, pppppbVar15[4] < local_c0 ||
                           ((local_c0 == pppppbVar15[4] && (pppppbVar15[5] < param_1))))) {
                      pppppbVar1 = pppppbVar15 + 3;
                      pppppbVar8 = (byte *****)*pppppbVar1;
                      pppppbVar15 = pppppbVar14;
                      if ((byte *****)*pppppbVar1 == (byte *****)0x0) goto LAB_00077d27;
                    }
                    pppppbVar8 = (byte *****)pppppbVar15[2];
                    pppppbVar14 = pppppbVar15;
                  } while ((byte *****)pppppbVar15[2] != (byte *****)0x0);
LAB_00077d27:
                  local_bc = (byte ****)pppppbVar23;
                  if (((pppppbVar15 == pppppbVar23 + 5) || (local_c0 < pppppbVar15[4])) ||
                     ((local_c0 == pppppbVar15[4] && (param_1 < pppppbVar15[5]))))
                  goto LAB_00078190;
                }
                puVar19 = puVar20 + -8;
                puVar20 = puVar20 + -8;
                for (ppppbVar3 = (byte ****)ppppbVar3[0xc]; ppppbVar3 != (byte ****)0x0;
                    ppppbVar3 = (byte ****)*ppppbVar3) {
                  *(undefined4 *)(puVar20 + -0xc) = 1;
                  *(undefined4 *)(puVar20 + -0x10) = 0;
                  *(byte ******)(puVar20 + -0x14) = &local_94;
                  *(byte *****)(puVar20 + -0x18) = ppppbVar3 + 1;
                  *(byte ******)(puVar20 + -0x1c) = pppppbVar15 + 6;
                  *(undefined1 **)(puVar20 + -0x20) = local_f0;
                  *(undefined4 *)(puVar20 + -0x24) = 0x77d7e;
                  local_94 = (byte ****)(pppppbVar15 + 6);
                  FUN_000a8cd0();
                  puVar19 = puVar20 + -4;
                  puVar20 = puVar20 + -4;
                }
              }
            }
          }
        }
      }
      else {
        if (ppppbVar3 < local_c0[0x2c]) {
          local_74 = (byte ****)0x0;
LAB_000780d7:
          *(int *)(puVar20 + -8) = local_e0 + -0x11e2b4;
          *(undefined4 *)(puVar20 + -0xc) = 0x11c;
          *(int *)(puVar20 + -0x10) = local_e0 + -0x11cf41;
                    /* WARNING: Subroutine does not return */
          *(undefined **)(puVar20 + -0x14) = &UNK_000780f8;
          FUN_000da200();
        }
        uVar18 = (int)ppppbVar3 - (int)local_c0[0x2c];
        local_b4 = local_c0[0x30];
        if ((uint)((int)local_b4 - (int)local_c0[0x2f] >> 2) <= uVar18) {
          *(int *)(puVar20 + -8) = local_e0 + -0x11dcdc;
          *(undefined4 *)(puVar20 + -0xc) = 0x8ad;
          *(int *)(puVar20 + -0x10) = local_e0 + -0x11d1b8;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)(puVar20 + -0x14) = 0x78609;
          FUN_000da200();
        }
        local_74 = (byte ****)local_c0[0x2f][uVar18];
        if ((byte *****)local_74 == (byte *****)0x0) goto LAB_000780d7;
        if ((*(byte *)((int)local_74 + 0x2a) & 0x10) != 0) {
          *(byte *****)(puVar20 + -0xc) = local_74;
          *(int *)(puVar20 + -0x10) = local_ec;
          *(undefined4 *)(puVar20 + -0x14) = 0x780c5;
          local_74 = (byte ****)FUN_001e6f30();
        }
        if ((*(byte *)((int)local_74 + 0x2a) & 7) == 0) {
          local_10c = (byte ***)((byte *****)local_74)[0xc];
          local_108 = (byte ***)((byte *****)local_74)[0xd];
          local_d4 = (byte *)((int)local_bc + (int)local_10c);
          local_cc = ((byte *****)local_74)[2];
          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;
          if (((uint)((byte *****)local_cc)[0xb] & 1) == 0) {
            local_b4 = (byte ***)((byte *****)local_74)[3];
            bVar17 = *(byte *)((int)local_74 + 0x2b) >> 5 & 1;
            bVar24 = (*(byte *)((byte *****)local_74 + 10) & 0xf) < 2;
            bVar26 = (*(byte *)((byte *****)local_74 + 10) & 0xf) == 2;
            if (bVar26) {
              bVar24 = false;
              bVar26 = local_da == '\0';
              if (!bVar26) {
                if (bVar17 != 0) {
                  local_c4 = (byte ****)local_c0[0x54];
                  bVar24 = ((uint)local_c4 & 3) == 0;
                  bVar26 = ((uint)local_c4 & 3) == 1;
                  if ((bVar26) ||
                     ((bVar26 = local_d8 == 0x17, local_d8 < 0x18 &&
                      (bVar24 = (0x843f84U >> (local_d8 & 0x1f) & 1) != 0, bVar24))))
                  goto LAB_00077ec0;
                }
                local_c4 = *(byte *****)(local_ec + 0x15c);
                *(undefined4 *)(puVar20 + -0xc) = 1;
                *(undefined4 *)(puVar20 + -0x10) = 0;
                *(byte ******)(puVar20 + -0x14) = &local_98;
                *(byte ******)(puVar20 + -0x18) = &local_84;
                local_98 = (byte ****)((byte *****)local_c4 + 0xd);
                *(byte *****)(puVar20 + -0x1c) = local_98;
                *(undefined1 **)(puVar20 + -0x20) = local_f0;
                    /* try { // try from 000782fc to 000784af has its CatchHandler @ 000786c3 */
                *(undefined4 *)(puVar20 + -0x24) = 0x78301;
                local_84 = local_cc;
                local_80 = local_b4;
                FUN_000a8d90();
                bVar24 = (undefined1 *)0xffffffe3 < puVar20 + -0x20;
                bVar26 = puVar20 == (undefined1 *)0x4;
                puVar20 = puVar20 + -4;
              }
            }
          }
          else {
            local_b4 = (byte ***)0x0;
            bVar24 = false;
            bVar17 = 0;
            bVar26 = true;
            local_cc = (byte ****)0x0;
          }
        }
        else {
          local_10c = (byte ***)((byte *****)local_74)[0xc];
          local_b4 = (byte ***)0x0;
          local_108 = (byte ***)((byte *****)local_74)[0xd];
          local_cc = (byte ****)0x0;
          local_d4 = (byte *)((int)local_bc + (int)local_10c);
          local_d0 = (int)local_108 + (uint)CARRY4((uint)local_bc,(uint)local_10c) + local_b8;
          bVar24 = false;
          bVar17 = 0;
          bVar26 = true;
        }
LAB_00077ec0:
        ppppbVar3 = (byte ****)*local_74;
        iVar16 = 8;
        pbVar21 = (byte *)(local_e0 + -0x11cf31);
        ppppbVar22 = ppppbVar3;
        do {
          if (iVar16 == 0) break;
          iVar16 = iVar16 + -1;
          bVar24 = *pbVar21 < *(byte *)ppppbVar22;
          bVar26 = *pbVar21 == *(byte *)ppppbVar22;
          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
          ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);
        } while (bVar26);
        bVar25 = false;
        bVar24 = (!bVar24 && !bVar26) == bVar24;
        if (bVar24) {
          ppppbVar3 = ppppbVar3 + 2;
        }
        else {
          iVar16 = 7;
          pbVar21 = (byte *)(local_e0 + -0x11cf28);
          ppppbVar22 = ppppbVar3;
          do {
            if (iVar16 == 0) break;
            iVar16 = iVar16 + -1;
            bVar25 = *pbVar21 < *(byte *)ppppbVar22;
            bVar24 = *pbVar21 == *(byte *)ppppbVar22;
            pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
            ppppbVar22 = (byte ****)((int)ppppbVar22 + (uint)bVar27 * -2 + 1);
          } while (bVar24);
          ppppbVar3 = (byte ****)((int)ppppbVar3 + 7);
          if ((!bVar25 && !bVar24) != bVar25) {
            ppppbVar3 = (byte ****)local_e8;
          }
        }
        local_e8 = (byte ***)ppppbVar3;
        if (local_d9 != '\0') {
          if (bVar17 == 0) {
            local_34 = (byte ****)0x0;
            local_30 = (byte ***)0x0;
          }
          else {
            local_34 = local_cc;
            local_30 = local_b4;
          }
          local_c4 = (byte ****)&local_34;
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_fc;
          *(undefined4 *)(puVar20 + -0x14) = 0x77f29;
          FUN_000aa900();
          puVar2 = *(undefined4 **)(local_f8 + 4);
          if (puVar2 == *(undefined4 **)(local_f8 + 8)) {
            *(byte ******)(puVar20 + -8) = &local_74;
            *(undefined4 **)(puVar20 + -0xc) = puVar2;
            *(int *)(puVar20 + -0x10) = local_f8;
            *(undefined4 *)(puVar20 + -0x14) = 0x781fb;
            FUN_000a82c0();
          }
          else {
            *puVar2 = local_74;
            *(undefined4 **)(local_f8 + 4) = puVar2 + 1;
          }
          *(byte *****)(puVar20 + -0xc) = local_c4;
          *(int *)(puVar20 + -0x10) = local_100;
          local_34 = (byte ****)local_10c;
          local_30 = local_108;
          local_2c = local_bc;
          local_28 = local_b8;
          *(undefined4 *)(puVar20 + -0x14) = 0x77f82;
          FUN_000ab1b0();
          pppppbVar23 = (byte *****)*param_2;
          if (param_2[1] != 0) {
            *(int *)(puVar20 + -8) = local_e0 + -0x11de3c;
            *(undefined4 *)(puVar20 + -0xc) = 0xc0;
            *(int *)(puVar20 + -0x10) = local_e0 + -0x11cc44;
                    /* WARNING: Subroutine does not return */
            *(undefined4 *)(puVar20 + -0x14) = 0x785e8;
            FUN_000da200();
          }
          local_30 = (byte ***)0x0;
          puVar2 = *(undefined4 **)(local_f4 + 4);
          local_34 = (byte ****)pppppbVar23;
          if (puVar2 == *(undefined4 **)(local_f4 + 8)) {
            *(byte *****)(puVar20 + -8) = local_c4;
            *(undefined4 **)(puVar20 + -0xc) = puVar2;
            *(int *)(puVar20 + -0x10) = local_f4;
            *(undefined4 *)(puVar20 + -0x14) = 0x781dd;
            FUN_000aa950();
          }
          else {
            *puVar2 = pppppbVar23;
            puVar2[1] = 0;
            *(undefined4 **)(local_f4 + 4) = puVar2 + 2;
          }
          local_6c = (byte ****)0x0;
          *(byte ******)(puVar20 + -0xc) = &local_6c;
          *(int *)(puVar20 + -0x10) = local_104;
          *(undefined4 *)(puVar20 + -0x14) = 0x77fd9;
          FUN_000ab360();
        }
        puVar19 = puVar20;
        if (bVar17 != 0) goto LAB_00077afb;
      }
LAB_00077980:
      local_b0 = (int *)((int)local_b0 + 1);
      param_2 = param_2 + 6;
      puVar20 = puVar19;
    } while (param_3 != local_b0);
  }
  if (local_4c[0] != local_114) {
    *(byte **)(puVar19 + -0x10) = local_4c[0];
    *(undefined4 *)(puVar19 + -0x14) = 0x78222;
    FUN_00248220();
  }
  if ((local_64 != 0) && (local_60 != 0)) {
    *(int *)(puVar19 + -0x10) = local_e0 + -0x11ca0c;
    *(undefined4 *)(puVar19 + -0x14) = 0x7824a;
    uVar12 = gettext();
    *(undefined4 *)(puVar19 + -0x10) = uVar12;
    *(undefined4 *)(puVar19 + -0x14) = local_54;
    *(undefined4 *)(puVar19 + -0x18) = local_58;
    *(undefined4 *)(puVar19 + -0x1c) = local_5c;
    *(int *)(puVar19 + -0x20) = local_60;
    *(undefined4 *)(puVar19 + -0x24) = 0x7825e;
    FUN_000d1a30();
  }
  return;
}

