
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: add_from_relobj<32, false>
   DWARF original prototype: void add_from_relobj<32,_false>(Symbol_table * this,
   Sized_relobj_file<32,_false> * relobj, uchar * syms, size_t count, size_t symndx_offset, char *
   sym_names, size_t sym_name_size, Symbols * sympointers, size_t * defined) */

void __thiscall
gold::Symbol_table::add_from_relobj<32,_false>
          (Symbol_table *this,Sized_relobj_file<32,_false> *relobj,uchar *syms,size_t count,
          size_t symndx_offset,char *sym_names,size_t sym_name_size,Symbols *sympointers,
          size_t *defined)

{
  undefined1 *puVar1;
  byte bVar2;
  Input_file *this_00;
  Version_script_info *this_01;
  General_options *pGVar3;
  pointer ppOVar4;
  pointer pcVar5;
  Elf_Addr EVar6;
  Parameters *pPVar7;
  bool bVar8;
  bool bVar9;
  bool bVar10;
  char *pcVar11;
  Sized_symbol<32> *sym_00;
  Xindex *this_02;
  int iVar12;
  uint uVar13;
  char *pcVar14;
  byte *pbVar15;
  Sym<32,_false> *pSVar16;
  byte *pbVar17;
  bool bVar18;
  byte bVar19;
  bool local_7d;
  bool local_7c;
  char *local_74;
  Key *local_70;
  size_t local_6c;
  Stringpool *local_68;
  uint local_5c;
  size_t local_50;
  bool is_global_1;
  Sym<32,_false> sym;
  Key ver_key;
  Sym<32,_false> sym2;
  Key name_key;
  uchar symbuf [16];
  
  pPVar7 = parameters;
  bVar19 = 0;
  *defined = 0;
  if (pPVar7->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  if (**(int **)(pPVar7->target_ + 4) != 0x20) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.cc",0x4a6,"add_from_relobj");
  }
  this_00 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.input_file_;
  if (this_00 == (Input_file *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");
  }
  bVar8 = Input_file::just_symbols(this_00);
  local_50 = 0;
  if (count != 0) {
    do {
      while( true ) {
        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
        _M_start[local_50] = (Symbol *)0x0;
        sym.p_ = (Sym_data<32> *)syms;
        uVar13 = *(uint *)syms;
        if (sym_name_size <= uVar13) break;
        pcVar14 = sym_names + uVar13;
        if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;
        if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&
           (pcVar14[1] == '_')) {
          iVar12 = 0xf;
          bVar10 = (byte)pcVar14[2] < 0x5f;
          bVar18 = pcVar14[2] == 0x5f;
          pbVar15 = (byte *)(pcVar14 + bVar18);
          pbVar17 = (byte *)"__gnu_lto_slim";
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar10 = *pbVar15 < *pbVar17;
            bVar18 = *pbVar15 == *pbVar17;
            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;
          } while (bVar18);
          if ((!bVar10 && !bVar18) == bVar10) {
            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.
                     _M_dataplus._M_p;
            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");
            gold_info(pcVar11,pcVar5);
          }
        }
        local_5c = (uint)(sym.p_)->st_shndx;
        if (local_5c < 0xff00) {
LAB_0012dfbd:
          uVar13 = local_5c;
          if (local_5c == 0) {
            local_5c = 0;
            bVar10 = true;
            bVar18 = false;
          }
          else {
            *defined = *defined + 1;
            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.
                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                      ._M_impl._M_start;
            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.
                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");
            }
            if (ppOVar4[local_5c] == (Output_section *)0x0) {
              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);
              if (bVar10) {
                bVar18 = false;
              }
              else {
                bVar10 = true;
                bVar18 = true;
                local_5c = 0;
              }
            }
            else {
              bVar10 = true;
              bVar18 = false;
            }
          }
        }
        else {
          if (local_5c == 0xffff) {
            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;
            if (this_02 == (Xindex *)0x0) {
              this_02 = (Xindex *)
                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.
                          _vptr_Object[0x1b])(relobj);
              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;
            }
            local_5c = Xindex::sym_xindex_to_shndx
                                 (this_02,(Object *)relobj,local_50 + symndx_offset);
            goto LAB_0012dfbd;
          }
          bVar10 = false;
          bVar18 = false;
          *defined = *defined + 1;
          uVar13 = 0;
        }
        pcVar11 = strchr(pcVar14,0x40);
        ver_key = 0;
        bVar9 = Parameters::incremental_update(parameters);
        if (bVar9 || pcVar11 == (char *)0x0) {
          local_6c = strlen(pcVar14);
          this_01 = this->version_script_;
          local_7d = (this_01->version_trees_).
                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.
                     _M_impl._M_start !=
                     (this_01->version_trees_).
                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.
                     _M_impl._M_finish && local_5c != 0;
          if (local_7d) {
            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;
            symbuf[4] = '\0';
            symbuf[5] = '\0';
            symbuf[6] = '\0';
            symbuf[7] = '\0';
            symbuf._0_4_ = symbuf + 8;
                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */
            local_7d = Version_script_info::get_symbol_version
                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);
            if ((local_7d) && ((char)name_key != '\0')) {
              if (symbuf._4_4_ == 0) {
                local_7d = false;
                goto LAB_0012e2b0;
              }
                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */
              local_74 = Stringpool_template<char>::add_with_length
                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key
                                   );
              local_7d = false;
              local_7c = true;
            }
            else {
LAB_0012e2b0:
              local_7c = false;
              local_74 = (char *)0x0;
            }
            if ((uchar *)symbuf._0_4_ != symbuf + 8) {
              operator_delete((void *)symbuf._0_4_);
            }
          }
          else {
            local_7c = false;
            local_74 = (char *)0x0;
          }
        }
        else {
          local_6c = (int)pcVar11 - (int)pcVar14;
          local_7c = pcVar11[1] == '@';
          if (local_7c) {
            pcVar11 = pcVar11 + 2;
          }
          else {
            pcVar11 = pcVar11 + 1;
          }
          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);
          local_7d = false;
        }
        local_68 = &this->namepool_;
        local_70 = &name_key;
        sym2.p_ = (Sym_data<32> *)symbuf;
        pSVar16 = &sym2;
        if (bVar8) {
          symbuf._0_4_ = *(undefined4 *)syms;
          symbuf._4_4_ = *(undefined4 *)(syms + 4);
          symbuf._8_4_ = *(undefined4 *)(syms + 8);
          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);
          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {
            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10
                ) != 0) {
              bVar10 = false;
              local_5c = 0xfff1;
              goto LAB_0012e0e6;
            }
          }
          else {
            EVar6 = (sym.p_)->st_value;
            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.
                       _vptr_Object[0x13])(relobj,uVar13);
            symbuf._4_4_ = iVar12 + EVar6;
            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10
                ) != 0) {
              bVar10 = false;
              local_5c = 0xfff1;
LAB_0012e0e6:
              bVar2 = (sym2.p_)->st_other;
              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {
                symbuf[0xd] = (bVar2 & 0xfc) + 2;
              }
              goto LAB_0012deae;
            }
          }
          bVar10 = false;
          local_5c = 0xfff1;
        }
        else {
          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)
              != 0) {
            if (uVar13 == 0) {
              if (bVar10 != false) {
                bVar10 = true;
                pSVar16 = &sym;
                goto LAB_0012deae;
              }
              bVar10 = false;
            }
            symbuf._0_4_ = *(undefined4 *)syms;
            symbuf._4_4_ = *(undefined4 *)(syms + 4);
            symbuf._8_4_ = *(undefined4 *)(syms + 8);
            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);
            goto LAB_0012e0e6;
          }
          pSVar16 = &sym;
        }
LAB_0012deae:
        pcVar14 = Stringpool_template<char>::add_with_length
                            (local_68,pcVar14,local_6c,true,local_70);
        sym_00 = add_from_object<32,_false>
                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16
                            ,local_5c,bVar10,uVar13);
        if (sym_00 != (Sized_symbol<32> *)0x0) {
          if (local_7d != false) {
            force_local(this,&sym_00->super_Symbol);
          }
          pGVar3 = parameters->options_;
          if (pGVar3 == (General_options *)0x0) {
LAB_0012e426:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          if ((((pGVar3->gc_sections_).value != false) &&
              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))
                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&
               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||
                (((uint)((sym_00->super_Symbol).u1_.output_segment)->output_lists_[3].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_end_of_storage & 1) == 0)))))) &&
             (((pGVar3->shared_).value != false ||
              (((pGVar3->export_dynamic_).value != false ||
               ((bVar10 = Version_script_info::get_symbol_version
                                    (&(pGVar3->dynamic_list_).version_script_info_,
                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),
                bVar10 && (is_global_1 == false)))))))) {
            gc_mark_symbol(this,&sym_00->super_Symbol);
          }
          if (bVar18) {
            puVar1 = &(sym_00->super_Symbol).field_0x2b;
            *puVar1 = *puVar1 | 0x80;
          }
          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
          _M_start[local_50] = &sym_00->super_Symbol;
        }
        local_50 = local_50 + 1;
        syms = syms + 0x10;
        if (count == local_50) {
          return;
        }
      }
      pcVar14 = (char *)gettext("bad global symbol name offset %u at %zu");
      Object::error((Object *)relobj,pcVar14,uVar13,local_50);
      local_50 = local_50 + 1;
      syms = syms + 0x10;
    } while (count != local_50);
  }
  return;
}



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

void FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6
                 ,undefined4 **param_7,int *param_8,int *param_9)

{
  undefined4 **ppuVar1;
  char cVar2;
  byte bVar3;
  char cVar4;
  char *pcVar5;
  undefined4 uVar6;
  undefined4 *puVar7;
  int iVar8;
  uint uVar9;
  char *__s;
  byte *pbVar10;
  undefined4 ****ppppuVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  byte bVar15;
  char local_7d;
  undefined4 local_74;
  undefined4 *local_70;
  size_t local_6c;
  int local_68;
  uint local_5c;
  int local_50;
  char local_45;
  uint **local_44;
  undefined4 local_40;
  undefined4 ***local_3c;
  undefined4 local_38;
  uint **local_34;
  uint *local_30;
  uint *local_2c;
  undefined4 local_28;
  
  iVar8 = DAT_00302378;
  bVar15 = 0;
  *param_9 = 0;
  if (*(int *)(iVar8 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);
  }
  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");
  }
  if (param_2[7] == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");
  }
  cVar2 = FUN_0005cf90(param_2[7]);
  local_50 = 0;
  if (param_4 != 0) {
    do {
      while( true ) {
        *(undefined4 *)(*param_8 + local_50 * 4) = 0;
        local_44 = (uint **)param_3;
        ppuVar1 = *param_3;
        if (param_7 <= ppuVar1) break;
        __s = (char *)((int)ppuVar1 + param_6);
        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;
        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&
           (__s[1] == '_')) {
          iVar8 = 0xf;
          bVar13 = (byte)__s[2] < 0x5f;
          bVar14 = __s[2] == 0x5f;
          pbVar10 = (byte *)(__s + bVar14);
          pbVar12 = (byte *)"__gnu_lto_slim";
          do {
            if (iVar8 == 0) break;
            iVar8 = iVar8 + -1;
            bVar13 = *pbVar10 < *pbVar12;
            bVar14 = *pbVar10 == *pbVar12;
            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;
          } while (bVar14);
          if ((!bVar13 && !bVar14) == bVar13) {
            iVar8 = param_2[1];
            uVar6 = gettext("%s: plugin needed to handle lto object");
            FUN_0005ad60(uVar6,iVar8);
          }
        }
        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);
        if (local_5c < 0xff00) {
LAB_0012dfbd:
          uVar9 = local_5c;
          if (local_5c == 0) {
            local_5c = 0;
            cVar4 = '\x01';
            bVar13 = false;
          }
          else {
            *param_9 = *param_9 + 1;
            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {
                    /* WARNING: Subroutine does not return */
              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");
            }
            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {
              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);
              if (cVar4 == '\0') {
                cVar4 = '\x01';
                bVar13 = true;
                local_5c = 0;
              }
              else {
                bVar13 = false;
              }
            }
            else {
              cVar4 = '\x01';
              bVar13 = false;
            }
          }
        }
        else {
          if (local_5c == 0xffff) {
            iVar8 = param_2[0xc];
            if (iVar8 == 0) {
              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);
              param_2[0xc] = iVar8;
            }
            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);
            goto LAB_0012dfbd;
          }
          cVar4 = '\0';
          bVar13 = false;
          *param_9 = *param_9 + 1;
          uVar9 = 0;
        }
        pcVar5 = strchr(__s,0x40);
        local_40 = 0;
        bVar3 = FUN_000ee5f0(DAT_00302378);
        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {
          local_6c = strlen(__s);
          iVar8 = *(int *)(param_1 + 0x154);
          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;
          if ((bool)local_7d) {
            local_2c = (uint *)((uint)local_2c & 0xffffff00);
            local_30 = (uint *)0x0;
            local_34 = &local_2c;
                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */
            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);
            if ((local_7d == '\0') || ((char)local_38 == '\0')) {
LAB_0012e2b0:
              bVar14 = false;
              local_74 = 0;
            }
            else {
              if ((undefined4 **)local_30 == (undefined4 **)0x0) {
                local_7d = '\0';
                goto LAB_0012e2b0;
              }
                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */
              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);
              local_7d = '\0';
              bVar14 = true;
            }
            if (local_34 != &local_2c) {
              FUN_001807a0(local_34);
            }
          }
          else {
            bVar14 = false;
            local_74 = 0;
          }
        }
        else {
          local_6c = (int)pcVar5 - (int)__s;
          bVar14 = pcVar5[1] == '@';
          if (bVar14) {
            pcVar5 = pcVar5 + 2;
          }
          else {
            pcVar5 = pcVar5 + 1;
          }
          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);
          local_7d = '\0';
        }
        local_68 = param_1 + 0x40;
        local_70 = &local_38;
        local_3c = &local_34;
        ppppuVar11 = &local_3c;
        if (cVar2 == '\0') {
          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {
            if (uVar9 == 0) {
              if (cVar4 != '\0') {
                cVar4 = '\x01';
                ppppuVar11 = (undefined4 ****)&local_44;
                goto LAB_0012deae;
              }
              cVar4 = '\0';
            }
            local_34 = *param_3;
            local_30 = (uint *)param_3[1];
            local_2c = (uint *)param_3[2];
            local_28 = param_3[3];
            goto LAB_0012e0e6;
          }
          ppppuVar11 = (undefined4 ****)&local_44;
        }
        else {
          local_34 = *param_3;
          local_30 = (uint *)param_3[1];
          local_2c = (uint *)param_3[2];
          local_28 = param_3[3];
          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {
            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {
              cVar4 = '\0';
              local_5c = 0xfff1;
              goto LAB_0012e0e6;
            }
          }
          else {
            ppuVar1 = (undefined4 **)local_44[1];
            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);
            local_30 = (uint *)(iVar8 + (int)ppuVar1);
            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {
              cVar4 = '\0';
              local_5c = 0xfff1;
LAB_0012e0e6:
              bVar3 = *(byte *)((int)local_3c + 0xd);
              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {
                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);
              }
              goto LAB_0012deae;
            }
          }
          cVar4 = '\0';
          local_5c = 0xfff1;
        }
LAB_0012deae:
        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);
        puVar7 = (undefined4 *)
                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,
                              local_5c,cVar4,uVar9);
        if (puVar7 != (undefined4 *)0x0) {
          if (local_7d != '\0') {
            FUN_001236a0(param_1,puVar7);
          }
          iVar8 = *(int *)(DAT_00302378 + 8);
          if (iVar8 == 0) {
LAB_0012e426:
                    /* WARNING: Subroutine does not return */
            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");
          }
          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&
              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||
                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&
                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&
               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||
                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&
             ((*(char *)(iVar8 + 0x1a25) != '\0' ||
              ((*(char *)(iVar8 + 0x12b9) != '\0' ||
               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&
                (local_45 == '\0')))))))) {
            FUN_00123a50(param_1,puVar7);
          }
          if (bVar13) {
            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;
          }
          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;
        }
        local_50 = local_50 + 1;
        param_3 = param_3 + 4;
        if (param_4 == local_50) {
          return;
        }
      }
      uVar6 = gettext("bad global symbol name offset %u at %zu");
      FUN_00091980(param_2,uVar6,ppuVar1,local_50);
      local_50 = local_50 + 1;
      param_3 = param_3 + 4;
    } while (param_4 != local_50);
  }
  return;
}


CALL 0x0004fb76
ADD EAX,0x1d42fb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x7c
MOV dword ptr [EBP + -0x54],EAX
LEA EAX,[EAX + 0x378]
MOV EDI,dword ptr [EBP + 0x28]
MOV dword ptr [EBP + -0x5c],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [EDI],0x0
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0012e47b
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX],0x20
JNZ 0x0012e45f
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x1c]
TEST EAX,EAX
JZ 0x0012e494
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x54]
PUSH EAX
CALL 0x0005cf90
MOV ECX,dword ptr [EBP + 0x14]
ADD ESP,0x10
MOV dword ptr [EBP + -0x4c],0x0
MOV byte ptr [EBP + -0x7b],AL
LEA EAX,[EBP + -0x41]
MOV dword ptr [EBP + 0xffffff78],EAX
LEA EAX,[EBP + -0x38]
MOV dword ptr [EBP + -0x80],EAX
TEST ECX,ECX
JNZ 0x0012df55
JMP 0x0012e0cb
CMP ESI,0xffff
JZ 0x0012e1a0
MOV EAX,dword ptr [EBP + 0x28]
MOV byte ptr [EBP + -0x74],0x0
MOV byte ptr [EBP + -0x7a],0x0
ADD dword ptr [EAX],0x1
MOV dword ptr [EBP + -0x58],ESI
XOR ESI,ESI
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x54]
PUSH 0x40
PUSH dword ptr [EBP + -0x50]
CALL 0x000261d0
MOV EDX,dword ptr [EBP + -0x5c]
POP ECX
MOV dword ptr [EBP + -0x3c],0x0
MOV EDI,EAX
PUSH dword ptr [EDX]
CALL 0x000ee5f0
ADD ESP,0x10
XOR EAX,0x1
TEST EDI,EDI
SETNZ DL
TEST AL,DL
JNZ 0x0012e000
SUB ESP,0xc
PUSH dword ptr [EBP + -0x50]
MOV EBX,dword ptr [EBP + -0x54]
CALL 0x000265f0
MOV EDX,dword ptr [EBP + -0x58]
ADD ESP,0x10
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x154]
MOV EBX,dword ptr [EAX + 0x1c]
CMP dword ptr [EAX + 0x18],EBX
SETNZ CL
TEST EDX,EDX
SETNZ DL
AND CL,DL
MOV byte ptr [EBP + -0x79],CL
JNZ 0x0012e250
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x78],0x0
LEA EDI,[EBP + -0x30]
MOV dword ptr [EBP + -0x70],0x0
ADD EAX,0x40
MOV dword ptr [EBP + -0x64],EAX
LEA EAX,[EBP + -0x34]
MOV dword ptr [EBP + -0x6c],EAX
CMP byte ptr [EBP + -0x7b],0x0
MOV dword ptr [EBP + -0x38],EDI
JZ 0x0012dfe0
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + -0x24],EAX
TEST ESI,ESI
JZ 0x0012de90
CMP byte ptr [EBP + -0x74],0x0
JZ 0x0012de90
MOV EAX,dword ptr [EBP + 0xc]
CMP dword ptr [EAX + 0xa8],0x1
JZ 0x0012e358
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0xc]
TEST byte ptr [EAX + 0x2c],0x10
JNZ 0x0012e0d8
MOV dword ptr [EBP + -0x74],0x0
MOV EDI,dword ptr [EBP + -0x80]
MOV dword ptr [EBP + -0x58],0xfff1
SUB ESP,0xc
PUSH dword ptr [EBP + -0x6c]
MOV EBX,dword ptr [EBP + -0x54]
PUSH 0x1
PUSH dword ptr [EBP + -0x68]
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + -0x64]
CALL 0x0011ff30
ADD ESP,0x1c
PUSH ESI
PUSH dword ptr [EBP + -0x74]
PUSH dword ptr [EBP + -0x58]
PUSH EDI
PUSH dword ptr [EBP + -0x78]
PUSH dword ptr [EBP + -0x3c]
PUSH dword ptr [EBP + -0x70]
PUSH dword ptr [EBP + -0x34]
PUSH EAX
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x8]
CALL 0x0012d040
ADD ESP,0x30
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0012df41
CMP byte ptr [EBP + -0x79],0x0
JNZ 0x0012e050
MOV EAX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0012e426
CMP byte ptr [EAX + 0x18b1],0x0
JZ 0x0012df2c
MOVZX EDX,byte ptr [ESI + 0x29]
AND EDX,0x3
JZ 0x0012e110
CMP DL,0x3
JZ 0x0012e110
CMP byte ptr [EBP + -0x7a],0x0
JZ 0x0012df36
OR byte ptr [ESI + 0x2b],0x80
MOV EAX,dword ptr [EBP + 0x24]
MOV EBX,dword ptr [EBP + -0x60]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EAX + EBX*0x1],ESI
ADD dword ptr [EBP + -0x4c],0x1
MOV EAX,dword ptr [EBP + -0x4c]
ADD dword ptr [EBP + 0x10],0x10
CMP dword ptr [EBP + 0x14],EAX
JZ 0x0012e0cb
MOV ECX,dword ptr [EBP + -0x4c]
LEA EAX,[ECX*0x4 + 0x0]
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EBP + 0x24]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EAX + ECX*0x4],0x0
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x40],EAX
MOV ESI,dword ptr [EAX]
CMP dword ptr [EBP + 0x20],ESI
JBE 0x0012e090
MOV EAX,dword ptr [EBP + -0x5c]
ADD ESI,dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + -0x50],ESI
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0012e426
CMP byte ptr [EAX + 0x318d],0x0
MOV EDX,dword ptr [EBP + 0x10]
JNZ 0x0012dfad
MOV EAX,dword ptr [EBP + -0x50]
CMP byte ptr [EAX],0x5f
JZ 0x0012e1d0
MOVZX ESI,word ptr [EDX + 0xe]
CMP ESI,0xfeff
JA 0x0012dd90
TEST ESI,ESI
JNZ 0x0012e160
MOV dword ptr [EBP + -0x58],0x0
MOV byte ptr [EBP + -0x74],0x1
MOV byte ptr [EBP + -0x7a],0x0
JMP 0x0012ddaf
MOV EAX,dword ptr [EBP + 0xc]
TEST byte ptr [EAX + 0x2c],0x10
JNZ 0x0012e068
MOVZX EAX,byte ptr [EBP + -0x74]
LEA EDI,[EBP + -0x40]
MOV dword ptr [EBP + -0x74],EAX
JMP 0x0012deae
MOV EBX,EDI
SUB EBX,dword ptr [EBP + -0x50]
CMP byte ptr [EDI + 0x1],0x40
MOV dword ptr [EBP + -0x68],EBX
JZ 0x0012e238
MOV dword ptr [EBP + -0x78],0x0
ADD EDI,0x1
MOV EAX,dword ptr [EBP + 0x8]
ADD EAX,0x40
MOV EBX,EAX
MOV dword ptr [EBP + -0x64],EAX
LEA EAX,[EBP + -0x3c]
PUSH EAX
PUSH 0x1
PUSH EDI
LEA EDI,[EBP + -0x30]
PUSH EBX
MOV EBX,dword ptr [EBP + -0x54]
CALL 0x001200e0
ADD ESP,0x10
MOV byte ptr [EBP + -0x79],0x0
MOV dword ptr [EBP + -0x70],EAX
LEA EAX,[EBP + -0x34]
MOV dword ptr [EBP + -0x6c],EAX
JMP 0x0012de3f
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EBP + 0x8]
CALL 0x001236a0
ADD ESP,0x10
JMP 0x0012defd
TEST ESI,ESI
JNZ 0x0012e2e0
CMP byte ptr [EBP + -0x74],0x0
JZ 0x0012e41a
MOV dword ptr [EBP + -0x74],0x1
LEA EDI,[EBP + -0x40]
JMP 0x0012deae
MOV EDI,dword ptr [EBP + -0x54]
SUB ESP,0xc
LEA EAX,[EDI + 0xfff2eb48]
MOV EBX,EDI
PUSH EAX
CALL 0x000263b0
ADD ESP,0x10
PUSH dword ptr [EBP + -0x4c]
PUSH ESI
PUSH EAX
PUSH dword ptr [EBP + 0xc]
CALL 0x00091980
ADD dword ptr [EBP + -0x4c],0x1
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x4c]
ADD dword ptr [EBP + 0x10],0x10
CMP dword ptr [EBP + 0x14],EAX
JNZ 0x0012df55
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [EBP + -0x74],0x0
MOV dword ptr [EBP + -0x58],0xfff1
MOVZX EAX,byte ptr [EDI + 0xd]
MOV EDX,EAX
AND EDX,0x3
JZ 0x0012e0fd
MOV EDI,dword ptr [EBP + -0x80]
CMP EDX,0x3
JNZ 0x0012deae
AND EAX,0xfffffffc
MOV EDI,dword ptr [EBP + -0x80]
ADD EAX,0x2
MOV byte ptr [EBP + -0x23],AL
JMP 0x0012deae
TEST byte ptr [ESI + 0x2b],0x10
JNZ 0x0012df2c
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x0012e12d
MOV EDX,dword ptr [ESI + 0x8]
TEST byte ptr [EDX + 0x2c],0x1
JNZ 0x0012df2c
CMP byte ptr [EAX + 0x1a25],0x0
JNZ 0x0012e143
CMP byte ptr [EAX + 0x12b9],0x0
JZ 0x0012e3e8
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [EBP + 0x8]
CALL 0x00123a50
ADD ESP,0x10
JMP 0x0012df2c
MOV EAX,dword ptr [EBP + 0x28]
ADD dword ptr [EAX],0x1
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x3c]
MOV dword ptr [EBP + -0x58],EAX
SUB EAX,EDX
SAR EAX,0x2
CMP ESI,EAX
JNC 0x0012e441
MOV EBX,dword ptr [EDX + ESI*0x4]
TEST EBX,EBX
JZ 0x0012e310
MOV dword ptr [EBP + -0x58],ESI
MOV byte ptr [EBP + -0x74],0x1
MOV byte ptr [EBP + -0x7a],0x0
JMP 0x0012ddaf
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JZ 0x0012e338
SUB ESP,0x4
MOV EDX,dword ptr [EBP + -0x4c]
ADD EDX,dword ptr [EBP + 0x18]
PUSH EDX
MOV EBX,dword ptr [EBP + -0x54]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
CALL 0x00091a00
ADD ESP,0x10
MOV ESI,EAX
JMP 0x0012dfbd
CMP byte ptr [EAX + 0x1],0x5f
JNZ 0x0012dfad
MOV EDI,EAX
XOR EAX,EAX
MOV ECX,0xf
CMP byte ptr [EDI + 0x2],0x5f
SETZ AL
LEA ESI,[EDI + EAX*0x1]
MOV EAX,dword ptr [EBP + -0x54]
LEA EDI,[EAX + 0xfff2eb97]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0012dfad
MOV EDI,dword ptr [EBP + -0x54]
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EDI + 0xfff2eb70]
MOV EBX,EDI
PUSH EAX
CALL 0x000263b0
POP EDI
POP EDX
PUSH ESI
PUSH EAX
CALL 0x0005ad60
MOV EDX,dword ptr [EBP + -0x40]
ADD ESP,0x10
JMP 0x0012dfad
ADD EDI,0x2
MOV dword ptr [EBP + -0x78],0x1
JMP 0x0012e01c
LEA ECX,[EBP + -0x34]
LEA EDI,[EBP + -0x30]
MOV byte ptr [EBP + -0x28],0x0
LEA EBX,[EBP + -0x28]
PUSH ECX
PUSH EDI
PUSH dword ptr [EBP + -0x50]
PUSH EAX
MOV dword ptr [EBP + 0xffffff7c],EBX
MOV dword ptr [EBP + -0x30],EBX
MOV EBX,dword ptr [EBP + -0x54]
MOV dword ptr [EBP + -0x2c],0x0
MOV dword ptr [EBP + -0x6c],ECX
CALL 0x001197d0
MOV ECX,EAX
MOV byte ptr [EBP + -0x79],AL
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
ADD EAX,0x40
MOV dword ptr [EBP + -0x64],EAX
MOV EAX,dword ptr [EBP + -0x30]
TEST CL,CL
JZ 0x0012e2b0
CMP byte ptr [EBP + -0x34],0x0
JZ 0x0012e2b0
MOV EDX,dword ptr [EBP + -0x2c]
TEST EDX,EDX
JNZ 0x0012e3b4
MOV byte ptr [EBP + -0x79],0x0
LEA ESI,[ESI]
NOP
MOV dword ptr [EBP + -0x78],0x0
MOV dword ptr [EBP + -0x70],0x0
CMP EAX,dword ptr [EBP + 0xffffff7c]
JZ 0x0012de3f
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x54]
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
JMP 0x0012de3f
MOVZX EAX,byte ptr [EBP + -0x74]
MOV dword ptr [EBP + -0x74],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + -0x24],EAX
JMP 0x0012e0e6
SUB ESP,0x4
PUSH ESI
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x8]
CALL 0x00122ff0
ADD ESP,0x10
MOV byte ptr [EBP + -0x74],AL
TEST AL,AL
JZ 0x0012e3a0
MOV dword ptr [EBP + -0x58],ESI
MOV byte ptr [EBP + -0x7a],0x0
JMP 0x0012ddaf
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EBP + 0xc]
CALL dword ptr [EAX + 0x6c]
MOV EDI,dword ptr [EBP + 0xc]
ADD ESP,0x10
MOV dword ptr [EDI + 0x30],EAX
JMP 0x0012e1ae
MOV EAX,dword ptr [EBP + -0x40]
SUB ESP,0x8
MOV EDI,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX]
PUSH ESI
PUSH dword ptr [EBP + 0xc]
CALL dword ptr [EAX + 0x4c]
ADD EAX,EDI
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0xc]
ADD ESP,0x10
TEST byte ptr [EAX + 0x2c],0x10
JZ 0x0012de9d
MOV EDI,dword ptr [EBP + -0x38]
MOV dword ptr [EBP + -0x74],0x0
MOV dword ptr [EBP + -0x58],0xfff1
JMP 0x0012e0e6
MOV byte ptr [EBP + -0x74],0x1
MOV byte ptr [EBP + -0x7a],0x1
MOV dword ptr [EBP + -0x58],0x0
JMP 0x0012ddaf
SUB ESP,0xc
LEA ECX,[EBP + -0x3c]
MOV EBX,dword ptr [EBP + -0x54]
PUSH ECX
PUSH 0x1
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + -0x64]
CALL 0x0011ff30
MOV dword ptr [EBP + -0x70],EAX
ADD ESP,0x20
MOV EAX,dword ptr [EBP + -0x30]
MOV byte ptr [EBP + -0x79],0x0
MOV dword ptr [EBP + -0x78],0x1
JMP 0x0012e2be
ADD EAX,0x59a8
PUSH dword ptr [EBP + 0xffffff78]
MOV EBX,dword ptr [EBP + -0x54]
PUSH 0x0
PUSH dword ptr [ESI]
PUSH EAX
CALL 0x001197d0
ADD ESP,0x10
TEST AL,AL
JZ 0x0012df2c
CMP byte ptr [EBP + -0x41],0x0
JNZ 0x0012df2c
JMP 0x0012e143
MOV dword ptr [EBP + -0x74],0x0
JMP 0x0012e2e7
MOV EBX,dword ptr [EBP + -0x54]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff2f2a8]
PUSH EAX
LEA EAX,[EBX + 0xfff1e970]
PUSH 0x5c
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x54]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff2f254]
PUSH EAX
LEA EAX,[EBX + 0xfff1801a]
PUSH 0x50b
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x54]
PUSH ESI
LEA EAX,[EBX + 0xfff2ed50]
PUSH EAX
LEA EAX,[EBX + 0xfff2e811]
PUSH 0x4a6
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x54]
PUSH EDI
LEA EAX,[EBX + 0xfff2f270]
PUSH EAX
LEA EAX,[EBX + 0xfff1e970]
PUSH 0x69
PUSH EAX
CALL 0x0005f0b0
PUSH EBX
MOV EBX,dword ptr [EBP + -0x54]
LEA EAX,[EBX + 0xfff2ed44]
PUSH EAX
LEA EAX,[EBX + 0xfff1801a]
PUSH 0x1ea
PUSH EAX
CALL 0x0005f0b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)\n\n{\n  undefined4 **ppuVar1;\n  char cVar2;\n  byte bVar3;\n  char cVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  char *__s;\n  byte *pbVar10;\n  undefined4 ****ppppuVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char local_7d;\n  undefined4 local_74;\n  undefined4 *local_70;\n  size_t local_6c;\n  int local_68;\n  uint local_5c;\n  int local_50;\n  char local_45;\n  uint **local_44;\n  undefined4 local_40;\n  undefined4 ***local_3c;\n  undefined4 local_38;\n  uint **local_34;\n  uint *local_30;\n  uint *local_2c;\n  undefined4 local_28;\n  \n  iVar8 = DAT_00302378;\n  bVar15 = 0;\n  *param_9 = 0;\n  if (*(int *)(iVar8 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }\n  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  if (param_2[7] == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar2 = FUN_0005cf90(param_2[7]);\n  local_50 = 0;\n  if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)\n\n{\n  undefined4 **ppuVar1;\n  char cVar2;\n  byte bVar3;\n  char cVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  char *__s;\n  byte *pbVar10;\n  undefined4 ****ppppuVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char local_7d;\n  undefined4 local_74;\n  undefined4 *local_70;\n  size_t local_6c;\n  int local_68;\n  uint local_5c;\n  int local_50;\n  char local_45;\n  uint **local_44;\n  undefined4 local_40;\n  undefined4 ***local_3c;\n  undefined4 local_38;\n  uint **local_34;\n  uint *local_30;\n  uint *local_2c;\n  undefined4 local_28;\n  \n  iVar8 = DAT_00302378;\n  bVar15 = 0;\n  *param_9 = 0;\n  if (*(int *)(iVar8 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }\n  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  if (param_2[7] == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar2 = FUN_0005cf90(param_2[7]);\n  local_50 = 0;\n  if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)" identifier (parameter_list "(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 ***param_3" type_identifier (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined4 **param_7" type_identifier (pointer_declarator "**param_7" * (pointer_declarator "*param_7" * identifier))) , (parameter_declaration "int *param_8" primitive_type (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "int *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  undefined4 **ppuVar1;\n  char cVar2;\n  byte bVar3;\n  char cVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  char *__s;\n  byte *pbVar10;\n  undefined4 ****ppppuVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char local_7d;\n  undefined4 local_74;\n  undefined4 *local_70;\n  size_t local_6c;\n  int local_68;\n  uint local_5c;\n  int local_50;\n  char local_45;\n  uint **local_44;\n  undefined4 local_40;\n  undefined4 ***local_3c;\n  undefined4 local_38;\n  uint **local_34;\n  uint *local_30;\n  uint *local_2c;\n  undefined4 local_28;\n  \n  iVar8 = DAT_00302378;\n  bVar15 = 0;\n  *param_9 = 0;\n  if (*(int *)(iVar8 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }\n  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  if (param_2[7] == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar2 = FUN_0005cf90(param_2[7]);\n  local_50 = 0;\n  if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }\n  return;\n}" { (declaration "undefined4 **ppuVar1;" type_identifier (pointer_declarator "**ppuVar1" * (pointer_declarator "*ppuVar1" * identifier)) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 ****ppppuVar11;" type_identifier (pointer_declarator "****ppppuVar11" * (pointer_declarator "***ppppuVar11" * (pointer_declarator "**ppppuVar11" * (pointer_declarator "*ppppuVar11" * identifier)))) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "char local_7d;" primitive_type identifier ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined4 *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "size_t local_6c;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "char local_45;" primitive_type identifier ;) (declaration "uint **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 ***local_3c;" type_identifier (pointer_declarator "***local_3c" * (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier))) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "uint **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (expression_statement "iVar8 = DAT_00302378;" (assignment_expression "iVar8 = DAT_00302378" identifier = identifier) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (if_statement "if (*(int *)(iVar8 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }" if (parenthesized_expression "(*(int *)(iVar8 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar8 + 0xc) == 0" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }" { comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",param_9)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;) })) (if_statement "if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }" if (parenthesized_expression "(**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20)" ( (binary_expression "**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20" (pointer_expression "**(int **)(*(int *)(iVar8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(iVar8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(iVar8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar8 + 0xc) + 4)" ( (binary_expression "*(int *)(iVar8 + 0xc) + 4" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }" { comment (expression_statement "FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");" (call_expression "FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj")" identifier (argument_list "("../../gold/symtab.cc",0x4a6,"add_from_relobj")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_from_relobj"" " string_content ") ))) ;) })) (if_statement "if (param_2[7] == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }" if (parenthesized_expression "(param_2[7] == 0)" ( (binary_expression "param_2[7] == 0" (subscript_expression "param_2[7]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }" { comment (expression_statement "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");" (call_expression "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file")" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") ))) ;) })) (expression_statement "cVar2 = FUN_0005cf90(param_2[7]);" (assignment_expression "cVar2 = FUN_0005cf90(param_2[7])" identifier = (call_expression "FUN_0005cf90(param_2[7])" identifier (argument_list "(param_2[7])" ( (subscript_expression "param_2[7]" identifier [ number_literal ]) )))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (if_statement "if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }" { (do_statement "do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);" do (compound_statement "{\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    }" { (while_statement "while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }" { (expression_statement "*(undefined4 *)(*param_8 + local_50 * 4) = 0;" (assignment_expression "*(undefined4 *)(*param_8 + local_50 * 4) = 0" (pointer_expression "*(undefined4 *)(*param_8 + local_50 * 4)" * (cast_expression "(undefined4 *)(*param_8 + local_50 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_8 + local_50 * 4)" ( (binary_expression "*param_8 + local_50 * 4" (pointer_expression "*param_8" * identifier) + (binary_expression "local_50 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "local_44 = (uint **)param_3;" (assignment_expression "local_44 = (uint **)param_3" identifier = (cast_expression "(uint **)param_3" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "ppuVar1 = *param_3;" (assignment_expression "ppuVar1 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (param_7 <= ppuVar1) break;" if (parenthesized_expression "(param_7 <= ppuVar1)" ( (binary_expression "param_7 <= ppuVar1" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "__s = (char *)((int)ppuVar1 + param_6);" (assignment_expression "__s = (char *)((int)ppuVar1 + param_6)" identifier = (cast_expression "(char *)((int)ppuVar1 + param_6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar1 + param_6)" ( (binary_expression "(int)ppuVar1 + param_6" (cast_expression "(int)ppuVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;" if (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0012e426;" goto statement_identifier ;)) (if_statement "if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }" if (parenthesized_expression "(((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_'))" ( (binary_expression "((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')" (parenthesized_expression "((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_'))" ( (binary_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')" (parenthesized_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_00302378 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*__s == '_')" ( (binary_expression "*__s == '_'" (pointer_expression "*__s" * identifier) == (char_literal "'_'" ' character ')) ))) )) && (parenthesized_expression "(__s[1] == '_')" ( (binary_expression "__s[1] == '_'" (subscript_expression "__s[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }" { (expression_statement "iVar8 = 0xf;" (assignment_expression "iVar8 = 0xf" identifier = number_literal) ;) (expression_statement "bVar13 = (byte)__s[2] < 0x5f;" (assignment_expression "bVar13 = (byte)__s[2] < 0x5f" identifier = (binary_expression "(byte)__s[2] < 0x5f" (cast_expression "(byte)__s[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "__s[2]" identifier [ number_literal ])) < number_literal)) ;) (expression_statement "bVar14 = __s[2] == 0x5f;" (assignment_expression "bVar14 = __s[2] == 0x5f" identifier = (binary_expression "__s[2] == 0x5f" (subscript_expression "__s[2]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "pbVar10 = (byte *)(__s + bVar14);" (assignment_expression "pbVar10 = (byte *)(__s + bVar14)" identifier = (cast_expression "(byte *)(__s + bVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__s + bVar14)" ( (binary_expression "__s + bVar14" identifier + identifier) )))) ;) (expression_statement "pbVar12 = (byte *)"__gnu_lto_slim";" (assignment_expression "pbVar12 = (byte *)"__gnu_lto_slim"" identifier = (cast_expression "(byte *)"__gnu_lto_slim"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__gnu_lto_slim"" " string_content "))) ;) (do_statement "do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);" do (compound_statement "{\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar10 < *pbVar12;" (assignment_expression "bVar13 = *pbVar10 < *pbVar12" identifier = (binary_expression "*pbVar10 < *pbVar12" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar14 = *pbVar10 == *pbVar12;" (assignment_expression "bVar14 = *pbVar10 == *pbVar12" identifier = (binary_expression "*pbVar10 == *pbVar12" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }" if (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" ( (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" ( (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (compound_statement "{\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }" { (expression_statement "iVar8 = param_2[1];" (assignment_expression "iVar8 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = gettext("%s: plugin needed to handle lto object");" (assignment_expression "uVar6 = gettext("%s: plugin needed to handle lto object")" identifier = (call_expression "gettext("%s: plugin needed to handle lto object")" identifier (argument_list "("%s: plugin needed to handle lto object")" ( (string_literal ""%s: plugin needed to handle lto object"" " string_content ") )))) ;) (expression_statement "FUN_0005ad60(uVar6,iVar8);" (call_expression "FUN_0005ad60(uVar6,iVar8)" identifier (argument_list "(uVar6,iVar8)" ( identifier , identifier ))) ;) })) })) (expression_statement "local_5c = (uint)*(ushort *)((int)local_44 + 0xe);" (assignment_expression "local_5c = (uint)*(ushort *)((int)local_44 + 0xe)" identifier = (binary_expression "(uint)*(ushort *)((int)local_44 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_44 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 0xe)" ( (binary_expression "(int)local_44 + 0xe" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" if (parenthesized_expression "(local_5c < 0xff00)" ( (binary_expression "local_5c < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }" { (labeled_statement "LAB_0012dfbd:\n          uVar9 = local_5c;" statement_identifier : (expression_statement "uVar9 = local_5c;" (assignment_expression "uVar9 = local_5c" identifier = identifier) ;)) (if_statement "if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" if (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) (compound_statement "{\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }) (else_clause "else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" else (compound_statement "{\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" { (expression_statement "*param_9 = *param_9 + 1;" (assignment_expression "*param_9 = *param_9 + 1" (pointer_expression "*param_9" * identifier) = (binary_expression "*param_9 + 1" (pointer_expression "*param_9" * identifier) + number_literal)) ;) (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }" if (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c)" ( (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" ( (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) - (subscript_expression "param_2[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }" { comment (expression_statement "FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");" (call_expression "FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included")" identifier (argument_list "("../../gold/object.h",0x50b,"is_section_included")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""is_section_included"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" if (parenthesized_expression "(*(int *)(param_2[0xe] + local_5c * 4) == 0)" ( (binary_expression "*(int *)(param_2[0xe] + local_5c * 4) == 0" (pointer_expression "*(int *)(param_2[0xe] + local_5c * 4)" * (cast_expression "(int *)(param_2[0xe] + local_5c * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xe] + local_5c * 4)" ( (binary_expression "param_2[0xe] + local_5c * 4" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) + (binary_expression "local_5c * 4" identifier * number_literal)) )))) == number_literal) )) (compound_statement "{\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }" { (expression_statement "cVar4 = FUN_00122ff0(param_1,param_2,local_5c);" (assignment_expression "cVar4 = FUN_00122ff0(param_1,param_2,local_5c)" identifier = (call_expression "FUN_00122ff0(param_1,param_2,local_5c)" identifier (argument_list "(param_1,param_2,local_5c)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }" { (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n                bVar13 = false;\n              }" else (compound_statement "{\n                bVar13 = false;\n              }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }))) }) (else_clause "else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" else (compound_statement "{\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" { (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }))) }))) }) (else_clause "else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" else (compound_statement "{\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" { (if_statement "if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }" if (parenthesized_expression "(local_5c == 0xffff)" ( (binary_expression "local_5c == 0xffff" identifier == number_literal) )) (compound_statement "{\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }" { (expression_statement "iVar8 = param_2[0xc];" (assignment_expression "iVar8 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }" { (expression_statement "iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);" (assignment_expression "iVar8 = (**(code **)(*param_2 + 0x6c))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x6c))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x6c))" ( (pointer_expression "**(code **)(*param_2 + 0x6c)" * (pointer_expression "*(code **)(*param_2 + 0x6c)" * (cast_expression "(code **)(*param_2 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x6c)" ( (binary_expression "*param_2 + 0x6c" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "param_2[0xc] = iVar8;" (assignment_expression "param_2[0xc] = iVar8" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);" (assignment_expression "local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5)" identifier = (call_expression "FUN_00091a00(iVar8,param_2,local_50 + param_5)" identifier (argument_list "(iVar8,param_2,local_50 + param_5)" ( identifier , identifier , (binary_expression "local_50 + param_5" identifier + identifier) )))) ;) (goto_statement "goto LAB_0012dfbd;" goto statement_identifier ;) })) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "*param_9 = *param_9 + 1;" (assignment_expression "*param_9 = *param_9 + 1" (pointer_expression "*param_9" * identifier) = (binary_expression "*param_9 + 1" (pointer_expression "*param_9" * identifier) + number_literal)) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) (expression_statement "pcVar5 = strchr(__s,0x40);" (assignment_expression "pcVar5 = strchr(__s,0x40)" identifier = (call_expression "strchr(__s,0x40)" identifier (argument_list "(__s,0x40)" ( identifier , number_literal )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = FUN_000ee5f0(DAT_00302378);" (assignment_expression "bVar3 = FUN_000ee5f0(DAT_00302378)" identifier = (call_expression "FUN_000ee5f0(DAT_00302378)" identifier (argument_list "(DAT_00302378)" ( identifier )))) ;) (if_statement "if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" if (parenthesized_expression "(((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0)" ( (binary_expression "((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0" (parenthesized_expression "((bVar3 ^ 1) & pcVar5 != (char *)0x0)" ( (binary_expression "(bVar3 ^ 1) & pcVar5 != (char *)0x0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) & (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) == number_literal) )) (compound_statement "{\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }" { (expression_statement "local_6c = strlen(__s);" (assignment_expression "local_6c = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0x154);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x154)" identifier = (pointer_expression "*(int *)(param_1 + 0x154)" * (cast_expression "(int *)(param_1 + 0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) ))))) ;) (expression_statement "local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;" (assignment_expression "local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0" identifier = (binary_expression "*(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0" (binary_expression "*(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) && (binary_expression "local_5c != 0" identifier != number_literal))) ;) (if_statement "if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }" if (parenthesized_expression "((bool)local_7d)" ( (cast_expression "(bool)local_7d" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }" { (expression_statement "local_2c = (uint *)((uint)local_2c & 0xffffff00);" (assignment_expression "local_2c = (uint *)((uint)local_2c & 0xffffff00)" identifier = (cast_expression "(uint *)((uint)local_2c & 0xffffff00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_2c & 0xffffff00)" ( (binary_expression "(uint)local_2c & 0xffffff00" (cast_expression "(uint)local_2c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) comment (expression_statement "local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);" (assignment_expression "local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38)" identifier = (call_expression "FUN_001197d0(iVar8,__s,&local_34,&local_38)" identifier (argument_list "(iVar8,__s,&local_34,&local_38)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_38" & identifier) )))) ;) (if_statement "if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" if (parenthesized_expression "((local_7d == '\0') || ((char)local_38 == '\0'))" ( (binary_expression "(local_7d == '\0') || ((char)local_38 == '\0')" (parenthesized_expression "(local_7d == '\0')" ( (binary_expression "local_7d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((char)local_38 == '\0')" ( (binary_expression "(char)local_38 == '\0'" (cast_expression "(char)local_38" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }" { (labeled_statement "LAB_0012e2b0:\n              bVar14 = false;" statement_identifier : (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;)) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" else (compound_statement "{\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" { (if_statement "if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }" if (parenthesized_expression "((undefined4 **)local_30 == (undefined4 **)0x0)" ( (binary_expression "(undefined4 **)local_30 == (undefined4 **)0x0" (cast_expression "(undefined4 **)local_30" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (cast_expression "(undefined4 **)0x0" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }" { (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0012e2b0;" goto statement_identifier ;) })) comment (expression_statement "local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);" (assignment_expression "local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40)" identifier = (call_expression "FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40)" identifier (argument_list "(param_1 + 0x40,local_34,local_30,1,&local_40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) , identifier , identifier , number_literal , (pointer_expression "&local_40" & identifier) )))) ;) (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bVar14 = true;" (assignment_expression "bVar14 = true" identifier = true) ;) }))) (if_statement "if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }" if (parenthesized_expression "(local_34 != &local_2c)" ( (binary_expression "local_34 != &local_2c" identifier != (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n              FUN_001807a0(local_34);\n            }" { (expression_statement "FUN_001807a0(local_34);" (call_expression "FUN_001807a0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) }) (else_clause "else {\n            bVar14 = false;\n            local_74 = 0;\n          }" else (compound_statement "{\n            bVar14 = false;\n            local_74 = 0;\n          }" { (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" else (compound_statement "{\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" { (expression_statement "local_6c = (int)pcVar5 - (int)__s;" (assignment_expression "local_6c = (int)pcVar5 - (int)__s" identifier = (binary_expression "(int)pcVar5 - (int)__s" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar14 = pcVar5[1] == '@';" (assignment_expression "bVar14 = pcVar5[1] == '@'" identifier = (binary_expression "pcVar5[1] == '@'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) == (char_literal "'@'" ' character '))) ;) (if_statement "if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n            pcVar5 = pcVar5 + 2;\n          }" { (expression_statement "pcVar5 = pcVar5 + 2;" (assignment_expression "pcVar5 = pcVar5 + 2" identifier = (binary_expression "pcVar5 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n            pcVar5 = pcVar5 + 1;\n          }" else (compound_statement "{\n            pcVar5 = pcVar5 + 1;\n          }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);" (assignment_expression "local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40)" identifier = (call_expression "FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40)" identifier (argument_list "(param_1 + 0x40,pcVar5,1,&local_40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_40" & identifier) )))) ;) (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "local_68 = param_1 + 0x40;" (assignment_expression "local_68 = param_1 + 0x40" identifier = (binary_expression "param_1 + 0x40" identifier + number_literal)) ;) (expression_statement "local_70 = &local_38;" (assignment_expression "local_70 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "local_3c = &local_34;" (assignment_expression "local_3c = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "ppppuVar11 = &local_3c;" (assignment_expression "ppppuVar11 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (if_statement "if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }" { (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }" if (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" ( (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" * (cast_expression "(byte *)(param_2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb)" ( (binary_expression "param_2 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }" { (if_statement "if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }" { (if_statement "if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }" { (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "ppppuVar11 = (undefined4 ****)&local_44;" (assignment_expression "ppppuVar11 = (undefined4 ****)&local_44" identifier = (cast_expression "(undefined4 ****)&local_44" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_44" & identifier))) ;) (goto_statement "goto LAB_0012deae;" goto statement_identifier ;) })) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "local_34 = *param_3;" (assignment_expression "local_34 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (uint *)param_3[1];" (assignment_expression "local_30 = (uint *)param_3[1]" identifier = (cast_expression "(uint *)param_3[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "local_2c = (uint *)param_3[2];" (assignment_expression "local_2c = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_28 = param_3[3];" (assignment_expression "local_28 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0012e0e6;" goto statement_identifier ;) })) (expression_statement "ppppuVar11 = (undefined4 ****)&local_44;" (assignment_expression "ppppuVar11 = (undefined4 ****)&local_44" identifier = (cast_expression "(undefined4 ****)&local_44" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_44" & identifier))) ;) }) (else_clause "else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" else (compound_statement "{\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" { (expression_statement "local_34 = *param_3;" (assignment_expression "local_34 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (uint *)param_3[1];" (assignment_expression "local_30 = (uint *)param_3[1]" identifier = (cast_expression "(uint *)param_3[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "local_2c = (uint *)param_3[2];" (assignment_expression "local_2c = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_28 = param_3[3];" (assignment_expression "local_28 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (if_statement "if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" if (parenthesized_expression "(((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1))" ( (binary_expression "((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)" (parenthesized_expression "((uVar9 == 0) || (cVar4 == '\0'))" ( (binary_expression "(uVar9 == 0) || (cVar4 == '\0')" (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) || (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(param_2[0x2a] != 1)" ( (binary_expression "param_2[0x2a] != 1" (subscript_expression "param_2[0x2a]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }" { (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }" if (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" ( (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" * (cast_expression "(byte *)(param_2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb)" ( (binary_expression "param_2 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) (goto_statement "goto LAB_0012e0e6;" goto statement_identifier ;) })) }) (else_clause "else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" else (compound_statement "{\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" { (expression_statement "ppuVar1 = (undefined4 **)local_44[1];" (assignment_expression "ppuVar1 = (undefined4 **)local_44[1]" identifier = (cast_expression "(undefined4 **)local_44[1]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_44[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);" (assignment_expression "iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9)" identifier = (call_expression "(**(code **)(*param_2 + 0x4c))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0x4c))" ( (pointer_expression "**(code **)(*param_2 + 0x4c)" * (pointer_expression "*(code **)(*param_2 + 0x4c)" * (cast_expression "(code **)(*param_2 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x4c)" ( (binary_expression "*param_2 + 0x4c" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar9)" ( identifier , identifier )))) ;) (expression_statement "local_30 = (uint *)(iVar8 + (int)ppuVar1);" (assignment_expression "local_30 = (uint *)(iVar8 + (int)ppuVar1)" identifier = (cast_expression "(uint *)(iVar8 + (int)ppuVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + (int)ppuVar1)" ( (binary_expression "iVar8 + (int)ppuVar1" identifier + (cast_expression "(int)ppuVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }" if (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" ( (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" * (cast_expression "(byte *)(param_2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb)" ( (binary_expression "param_2 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) (labeled_statement "LAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);" statement_identifier : (expression_statement "bVar3 = *(byte *)((int)local_3c + 0xd);" (assignment_expression "bVar3 = *(byte *)((int)local_3c + 0xd)" identifier = (pointer_expression "*(byte *)((int)local_3c + 0xd)" * (cast_expression "(byte *)((int)local_3c + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + 0xd)" ( (binary_expression "(int)local_3c + 0xd" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }" if (parenthesized_expression "(((bVar3 & 3) == 0) || ((bVar3 & 3) == 3))" ( (binary_expression "((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)" (parenthesized_expression "((bVar3 & 3) == 0)" ( (binary_expression "(bVar3 & 3) == 0" (parenthesized_expression "(bVar3 & 3)" ( (binary_expression "bVar3 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((bVar3 & 3) == 3)" ( (binary_expression "(bVar3 & 3) == 3" (parenthesized_expression "(bVar3 & 3)" ( (binary_expression "bVar3 & 3" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }" { (expression_statement "local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);" (assignment_expression "local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28)" (field_expression "local_28._0_2_" identifier . field_identifier) = (call_expression "CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28)" identifier (argument_list "((bVar3 & 0xfc) + 2,(undefined1)local_28)" ( (binary_expression "(bVar3 & 0xfc) + 2" (parenthesized_expression "(bVar3 & 0xfc)" ( (binary_expression "bVar3 & 0xfc" identifier & number_literal) )) + number_literal) , (cast_expression "(undefined1)local_28" ( (type_descriptor "undefined1" type_identifier) ) identifier) )))) ;) })) (goto_statement "goto LAB_0012deae;" goto statement_identifier ;) })) }))) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);" statement_identifier : (expression_statement "uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);" (assignment_expression "uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70)" identifier = (call_expression "FUN_0011ff30(local_68,__s,local_6c,1,local_70)" identifier (argument_list "(local_68,__s,local_6c,1,local_70)" ( identifier , identifier , identifier , number_literal , identifier )))) ;)) (expression_statement "puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);" (assignment_expression "puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" identifier = (cast_expression "(undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" identifier (argument_list "(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }" if (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }" { (if_statement "if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }" if (parenthesized_expression "(local_7d != '\0')" ( (binary_expression "local_7d != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            FUN_001236a0(param_1,puVar7);\n          }" { (expression_statement "FUN_001236a0(param_1,puVar7);" (call_expression "FUN_001236a0(param_1,puVar7)" identifier (argument_list "(param_1,puVar7)" ( identifier , identifier ))) ;) })) (expression_statement "iVar8 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }" { (labeled_statement "LAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }" if (parenthesized_expression "(((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))))))" ( (binary_expression "((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))" (parenthesized_expression "((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))))))" ( (binary_expression "(*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))" (parenthesized_expression "(*(char *)(iVar8 + 0x18b1) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x18b1) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x18b1)" * (cast_expression "(char *)(iVar8 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18b1)" ( (binary_expression "iVar8 + 0x18b1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))" ( (parenthesized_expression "((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))))" ( (binary_expression "(((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))" (parenthesized_expression "(((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0))" ( (binary_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3))" ( (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)" (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)puVar7 + 0x29) & 3" (pointer_expression "*(byte *)((int)puVar7 + 0x29)" * (cast_expression "(byte *)((int)puVar7 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x29)" ( (binary_expression "(int)puVar7 + 0x29" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 3)" ( (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 3" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)puVar7 + 0x29) & 3" (pointer_expression "*(byte *)((int)puVar7 + 0x29)" * (cast_expression "(byte *)((int)puVar7 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x29)" ( (binary_expression "(int)puVar7 + 0x29" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x2b) & 0x10)" ( (binary_expression "*(byte *)((int)puVar7 + 0x2b) & 0x10" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" * (cast_expression "(byte *)((int)puVar7 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x2b)" ( (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))" ( (parenthesized_expression "((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))" ( (binary_expression "(*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)" (binary_expression "(*(byte *)((int)puVar7 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)puVar7 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar7 + 0x2a)" * (cast_expression "(byte *)((int)puVar7 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x2a)" ( (binary_expression "(int)puVar7 + 0x2a" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(puVar7[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar7[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(puVar7[2] + 0x2c) & 1" (pointer_expression "*(byte *)(puVar7[2] + 0x2c)" * (cast_expression "(byte *)(puVar7[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7[2] + 0x2c)" ( (binary_expression "puVar7[2] + 0x2c" (subscript_expression "puVar7[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))" ( (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))))" ( (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))" (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))" ( (parenthesized_expression "(*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))" ( (binary_expression "*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))" (binary_expression "*(char *)(iVar8 + 0x12b9) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x12b9)" * (cast_expression "(char *)(iVar8 + 0x12b9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x12b9)" ( (binary_expression "iVar8 + 0x12b9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))" ( (parenthesized_expression "(cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))" ( (comma_expression "cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')" (assignment_expression "cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45)" identifier = (call_expression "FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45)" identifier (argument_list "(iVar8 + 0x59a8,*puVar7,0,&local_45)" ( (binary_expression "iVar8 + 0x59a8" identifier + number_literal) , (pointer_expression "*puVar7" * identifier) , number_literal , (pointer_expression "&local_45" & identifier) )))) , (binary_expression "cVar4 != '\0' &&\n                (local_45 == '\0')" (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(local_45 == '\0')" ( (binary_expression "local_45 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) ))) )) ))) )) (compound_statement "{\n            FUN_00123a50(param_1,puVar7);\n          }" { (expression_statement "FUN_00123a50(param_1,puVar7);" (call_expression "FUN_00123a50(param_1,puVar7)" identifier (argument_list "(param_1,puVar7)" ( identifier , identifier ))) ;) })) (if_statement "if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }" { (expression_statement "*(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;" (assignment_expression "*(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" * (cast_expression "(byte *)((int)puVar7 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x2b)" ( (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)puVar7 + 0x2b) | 0x80" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" * (cast_expression "(byte *)((int)puVar7 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x2b)" ( (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (expression_statement "*(undefined4 **)(*param_8 + local_50 * 4) = puVar7;" (assignment_expression "*(undefined4 **)(*param_8 + local_50 * 4) = puVar7" (pointer_expression "*(undefined4 **)(*param_8 + local_50 * 4)" * (cast_expression "(undefined4 **)(*param_8 + local_50 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_8 + local_50 * 4)" ( (binary_expression "*param_8 + local_50 * 4" (pointer_expression "*param_8" * identifier) + (binary_expression "local_50 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "param_3 = param_3 + 4;" (assignment_expression "param_3 = param_3 + 4" identifier = (binary_expression "param_3 + 4" identifier + number_literal)) ;) (if_statement "if (param_4 == local_50) {\n          return;\n        }" if (parenthesized_expression "(param_4 == local_50)" ( (binary_expression "param_4 == local_50" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "uVar6 = gettext("bad global symbol name offset %u at %zu");" (assignment_expression "uVar6 = gettext("bad global symbol name offset %u at %zu")" identifier = (call_expression "gettext("bad global symbol name offset %u at %zu")" identifier (argument_list "("bad global symbol name offset %u at %zu")" ( (string_literal ""bad global symbol name offset %u at %zu"" " string_content ") )))) ;) (expression_statement "FUN_00091980(param_2,uVar6,ppuVar1,local_50);" (call_expression "FUN_00091980(param_2,uVar6,ppuVar1,local_50)" identifier (argument_list "(param_2,uVar6,ppuVar1,local_50)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "param_3 = param_3 + 4;" (assignment_expression "param_3 = param_3 + 4" identifier = (binary_expression "param_3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != local_50)" ( (binary_expression "param_4 != local_50" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: add_from_relobj<32, false>\n   DWARF original prototype: void add_from_relobj<32,_false>(Symbol_table * this,\n   Sized_relobj_file<32,_false> * relobj, uchar * syms, size_t count, size_t symndx_offset, char *\n   sym_names, size_t sym_name_size, Symbols * sympointers, size_t * defined) */\n\nvoid __thiscall\ngold::Symbol_table::add_from_relobj<32,_false>\n          (Symbol_table *this,Sized_relobj_file<32,_false> *relobj,uchar *syms,size_t count,\n          size_t symndx_offset,char *sym_names,size_t sym_name_size,Symbols *sympointers,\n          size_t *defined)\n\n{\n  undefined1 *puVar1;\n  byte bVar2;\n  Input_file *this_00;\n  Version_script_info *this_01;\n  General_options *pGVar3;\n  pointer ppOVar4;\n  pointer pcVar5;\n  Elf_Addr EVar6;\n  Parameters *pPVar7;\n  bool bVar8;\n  bool bVar9;\n  bool bVar10;\n  char *pcVar11;\n  Sized_symbol<32> *sym_00;\n  Xindex *this_02;\n  int iVar12;\n  uint uVar13;\n  char *pcVar14;\n  byte *pbVar15;\n  Sym<32,_false> *pSVar16;\n  byte *pbVar17;\n  bool bVar18;\n  byte bVar19;\n  bool local_7d;\n  bool local_7c;\n  char *local_74;\n  Key *local_70;\n  size_t local_6c;\n  Stringpool *local_68;\n  uint local_5c;\n  size_t local_50;\n  bool is_global_1;\n  Sym<32,_false> sym;\n  Key ver_key;\n  Sym<32,_false> sym2;\n  Key name_key;\n  uchar symbuf [16];\n  \n  pPVar7 = parameters;\n  bVar19 = 0;\n  *defined = 0;\n  if (pPVar7->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  if (**(int **)(pPVar7->target_ + 4) != 0x20) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  this_00 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.input_file_;\n  if (this_00 == (Input_file *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n  }\n  bVar8 = Input_file::just_symbols(this_00);\n  local_50 = 0;\n  if (count != 0) {\n    do {\n      while( true ) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0;\n        sym.p_ = (Sym_data<32> *)syms;\n        uVar13 = *(uint *)syms;\n        if (sym_name_size <= uVar13) break;\n        pcVar14 = sym_names + uVar13;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;\n        if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')) {\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }\n        local_5c = (uint)(sym.p_)->st_shndx;\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }\n        pcVar11 = strchr(pcVar14,0x40);\n        ver_key = 0;\n        bVar9 = Parameters::incremental_update(parameters);\n        if (bVar9 || pcVar11 == (char *)0x0) {\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }\n        local_68 = &this->namepool_;\n        local_70 = &name_key;\n        sym2.p_ = (Sym_data<32> *)symbuf;\n        pSVar16 = &sym2;\n        if (bVar8) {\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }\n        else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }\nLAB_0012deae:\n        pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);\n        sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13);\n        if (sym_00 != (Sized_symbol<32> *)0x0) {\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }\n        local_50 = local_50 + 1;\n        syms = syms + 0x10;\n        if (count == local_50) {\n          return;\n        }\n      }\n      pcVar14 = (char *)gettext("bad global symbol name offset %u at %zu");\n      Object::error((Object *)relobj,pcVar14,uVar13,local_50);\n      local_50 = local_50 + 1;\n      syms = syms + 0x10;\n    } while (count != local_50);\n  }\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Symbol_table::add_from_relobj<32,_false>\n          (Symbol_table *this,Sized_relobj_file<32,_false> *relobj,uchar *syms,size_t count,\n          size_t symndx_offset,char *sym_names,size_t sym_name_size,Symbols *sympointers,\n          size_t *defined)\n\n{\n  undefined1 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>\n          (Symbol_table *this,Sized_relobj_file<32,_false> *relobj,uchar *syms,size_t count,\n          size_t symndx_offset,char *sym_names,size_t sym_name_size,Symbols *sympointers,\n          size_t *defined)\n\n{\n  undefined1" (function_declarator "_false>\n          (Symbol_table *this,Sized_relobj_file<32,_false> *relobj,uchar *syms,size_t count,\n          size_t symndx_offset,char *sym_names,size_t sym_name_size,Symbols *sympointers,\n          size_t *defined)" identifier (ERROR ">" >) (parameter_list "(Symbol_table *this,Sized_relobj_file<32,_false> *relobj,uchar *syms,size_t count,\n          size_t symndx_offset,char *sym_names,size_t sym_name_size,Symbols *sympointers,\n          size_t *defined)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *relobj" type_identifier (ERROR ">" >) (pointer_declarator "*relobj" * identifier)) , (parameter_declaration "uchar *syms" type_identifier (pointer_declarator "*syms" * identifier)) , (parameter_declaration "size_t count" primitive_type identifier) , (parameter_declaration "size_t symndx_offset" primitive_type identifier) , (parameter_declaration "char *sym_names" primitive_type (pointer_declarator "*sym_names" * identifier)) , (parameter_declaration "size_t sym_name_size" primitive_type identifier) , (parameter_declaration "Symbols *sympointers" type_identifier (pointer_declarator "*sympointers" * identifier)) , (parameter_declaration "size_t *defined" primitive_type (pointer_declarator "*defined" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "Input_file *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "Version_script_info *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "General_options *pGVar3;" type_identifier (pointer_declarator "*pGVar3" * identifier) ;) (declaration "pointer ppOVar4;" type_identifier identifier ;) (declaration "pointer pcVar5;" type_identifier identifier ;) (declaration "Elf_Addr EVar6;" type_identifier identifier ;) (declaration "Parameters *pPVar7;" type_identifier (pointer_declarator "*pPVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (expression_statement "Sized_symbol<32> *sym_00;" (update_expression "Sized_symbol<32> *sym_00" (binary_expression "Sized_symbol<32> *sym_00" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*sym_00" * identifier)) --) ;) (declaration "Xindex *this_02;" type_identifier (pointer_declarator "*this_02" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (ERROR "Sym<32,_false> *pSVar16" (binary_expression "Sym<32" identifier < number_literal) , (binary_expression "_false> *pSVar16" identifier > (pointer_expression "*pSVar16" * identifier))) (expression_statement ";" ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "bool local_7d;" primitive_type identifier ;) (declaration "bool local_7c;" primitive_type identifier ;) (declaration "char *local_74;" primitive_type (pointer_declarator "*local_74" * identifier) ;) (declaration "Key *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "size_t local_6c;" primitive_type identifier ;) (declaration "Stringpool *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "size_t local_50;" primitive_type identifier ;) (declaration "bool is_global_1;" primitive_type identifier ;) (ERROR "Sym<32,_false> sym" (binary_expression "Sym<32" identifier < number_literal) , (binary_expression "_false> sym" identifier > identifier)) (expression_statement ";" ;) (declaration "Key ver_key;" type_identifier identifier ;) (ERROR "Sym<32,_false> sym2" (binary_expression "Sym<32" identifier < number_literal) , (binary_expression "_false> sym2" identifier > identifier)) (expression_statement ";" ;) (declaration "Key name_key;" type_identifier identifier ;) (declaration "uchar symbuf [16];" type_identifier (array_declarator "symbuf [16]" identifier [ number_literal ]) ;) (expression_statement "pPVar7 = parameters;" (assignment_expression "pPVar7 = parameters" identifier = identifier) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "*defined = 0;" (assignment_expression "*defined = 0" (pointer_expression "*defined" * identifier) = number_literal) ;) (if_statement "if (pPVar7->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(pPVar7->target_ == (Target *)0x0)" ( (binary_expression "pPVar7->target_ == (Target *)0x0" (field_expression "pPVar7->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (if_statement "if (**(int **)(pPVar7->target_ + 4) != 0x20) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }" if (parenthesized_expression "(**(int **)(pPVar7->target_ + 4) != 0x20)" ( (binary_expression "**(int **)(pPVar7->target_ + 4) != 0x20" (pointer_expression "**(int **)(pPVar7->target_ + 4)" * (pointer_expression "*(int **)(pPVar7->target_ + 4)" * (cast_expression "(int **)(pPVar7->target_ + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pPVar7->target_ + 4)" ( (binary_expression "pPVar7->target_ + 4" (field_expression "pPVar7->target_" identifier -> field_identifier) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x4a6,"add_from_relobj");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x4a6,"add_from_relobj")" identifier (argument_list "("../../gold/symtab.cc",0x4a6,"add_from_relobj")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_from_relobj"" " string_content ") ))) ;) })) (expression_statement "this_00 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.input_file_;" (assignment_expression "this_00 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.input_file_" identifier = (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.input_file_" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (this_00 == (Input_file *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n  }" if (parenthesized_expression "(this_00 == (Input_file *)0x0)" ( (binary_expression "this_00 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x1ea,"input_file");" (call_expression "do_gold_unreachable("../../gold/object.h",0x1ea,"input_file")" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") ))) ;) })) (ERROR "bVar8 = Input_file::" (assignment_expression "bVar8 = Input_file" identifier = identifier) : :) (expression_statement "just_symbols(this_00);" (call_expression "just_symbols(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (if_statement "if (count != 0) {\n    do {\n      while( true ) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0;\n        sym.p_ = (Sym_data<32> *)syms;\n        uVar13 = *(uint *)syms;\n        if (sym_name_size <= uVar13) break;\n        pcVar14 = sym_names + uVar13;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;\n        if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')) {\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }\n        local_5c = (uint)(sym.p_)->st_shndx;\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }\n        pcVar11 = strchr(pcVar14,0x40);\n        ver_key = 0;\n        bVar9 = Parameters::incremental_update(parameters);\n        if (bVar9 || pcVar11 == (char *)0x0) {\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }\n        local_68 = &this->namepool_;\n        local_70 = &name_key;\n        sym2.p_ = (Sym_data<32> *)symbuf;\n        pSVar16 = &sym2;\n        if (bVar8) {\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }\n        else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }\nLAB_0012deae:\n        pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);\n        sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13);\n        if (sym_00 != (Sized_symbol<32> *)0x0) {\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }\n        local_50 = local_50 + 1;\n        syms = syms + 0x10;\n        if (count == local_50) {\n          return;\n        }\n      }\n      pcVar14 = (char *)gettext("bad global symbol name offset %u at %zu");\n      Object::error((Object *)relobj,pcVar14,uVar13,local_50);\n      local_50 = local_50 + 1;\n      syms = syms + 0x10;\n    } while (count != local_50);\n  }" if (parenthesized_expression "(count != 0)" ( (binary_expression "count != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0;\n        sym.p_ = (Sym_data<32> *)syms;\n        uVar13 = *(uint *)syms;\n        if (sym_name_size <= uVar13) break;\n        pcVar14 = sym_names + uVar13;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;\n        if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')) {\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }\n        local_5c = (uint)(sym.p_)->st_shndx;\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }\n        pcVar11 = strchr(pcVar14,0x40);\n        ver_key = 0;\n        bVar9 = Parameters::incremental_update(parameters);\n        if (bVar9 || pcVar11 == (char *)0x0) {\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }\n        local_68 = &this->namepool_;\n        local_70 = &name_key;\n        sym2.p_ = (Sym_data<32> *)symbuf;\n        pSVar16 = &sym2;\n        if (bVar8) {\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }\n        else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }\nLAB_0012deae:\n        pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);\n        sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13);\n        if (sym_00 != (Sized_symbol<32> *)0x0) {\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }\n        local_50 = local_50 + 1;\n        syms = syms + 0x10;\n        if (count == local_50) {\n          return;\n        }\n      }\n      pcVar14 = (char *)gettext("bad global symbol name offset %u at %zu");\n      Object::error((Object *)relobj,pcVar14,uVar13,local_50);\n      local_50 = local_50 + 1;\n      syms = syms + 0x10;\n    } while (count != local_50);\n  }" { (do_statement "do {\n      while( true ) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0;\n        sym.p_ = (Sym_data<32> *)syms;\n        uVar13 = *(uint *)syms;\n        if (sym_name_size <= uVar13) break;\n        pcVar14 = sym_names + uVar13;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;\n        if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')) {\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }\n        local_5c = (uint)(sym.p_)->st_shndx;\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }\n        pcVar11 = strchr(pcVar14,0x40);\n        ver_key = 0;\n        bVar9 = Parameters::incremental_update(parameters);\n        if (bVar9 || pcVar11 == (char *)0x0) {\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }\n        local_68 = &this->namepool_;\n        local_70 = &name_key;\n        sym2.p_ = (Sym_data<32> *)symbuf;\n        pSVar16 = &sym2;\n        if (bVar8) {\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }\n        else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }\nLAB_0012deae:\n        pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);\n        sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13);\n        if (sym_00 != (Sized_symbol<32> *)0x0) {\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }\n        local_50 = local_50 + 1;\n        syms = syms + 0x10;\n        if (count == local_50) {\n          return;\n        }\n      }\n      pcVar14 = (char *)gettext("bad global symbol name offset %u at %zu");\n      Object::error((Object *)relobj,pcVar14,uVar13,local_50);\n      local_50 = local_50 + 1;\n      syms = syms + 0x10;\n    } while (count != local_50);" do (compound_statement "{\n      while( true ) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0;\n        sym.p_ = (Sym_data<32> *)syms;\n        uVar13 = *(uint *)syms;\n        if (sym_name_size <= uVar13) break;\n        pcVar14 = sym_names + uVar13;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;\n        if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')) {\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }\n        local_5c = (uint)(sym.p_)->st_shndx;\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }\n        pcVar11 = strchr(pcVar14,0x40);\n        ver_key = 0;\n        bVar9 = Parameters::incremental_update(parameters);\n        if (bVar9 || pcVar11 == (char *)0x0) {\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }\n        local_68 = &this->namepool_;\n        local_70 = &name_key;\n        sym2.p_ = (Sym_data<32> *)symbuf;\n        pSVar16 = &sym2;\n        if (bVar8) {\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }\n        else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }\nLAB_0012deae:\n        pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);\n        sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13);\n        if (sym_00 != (Sized_symbol<32> *)0x0) {\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }\n        local_50 = local_50 + 1;\n        syms = syms + 0x10;\n        if (count == local_50) {\n          return;\n        }\n      }\n      pcVar14 = (char *)gettext("bad global symbol name offset %u at %zu");\n      Object::error((Object *)relobj,pcVar14,uVar13,local_50);\n      local_50 = local_50 + 1;\n      syms = syms + 0x10;\n    }" { (while_statement "while( true ) {\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0;\n        sym.p_ = (Sym_data<32> *)syms;\n        uVar13 = *(uint *)syms;\n        if (sym_name_size <= uVar13) break;\n        pcVar14 = sym_names + uVar13;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;\n        if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')) {\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }\n        local_5c = (uint)(sym.p_)->st_shndx;\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }\n        pcVar11 = strchr(pcVar14,0x40);\n        ver_key = 0;\n        bVar9 = Parameters::incremental_update(parameters);\n        if (bVar9 || pcVar11 == (char *)0x0) {\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }\n        local_68 = &this->namepool_;\n        local_70 = &name_key;\n        sym2.p_ = (Sym_data<32> *)symbuf;\n        pSVar16 = &sym2;\n        if (bVar8) {\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }\n        else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }\nLAB_0012deae:\n        pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);\n        sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13);\n        if (sym_00 != (Sized_symbol<32> *)0x0) {\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }\n        local_50 = local_50 + 1;\n        syms = syms + 0x10;\n        if (count == local_50) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0;\n        sym.p_ = (Sym_data<32> *)syms;\n        uVar13 = *(uint *)syms;\n        if (sym_name_size <= uVar13) break;\n        pcVar14 = sym_names + uVar13;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;\n        if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')) {\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }\n        local_5c = (uint)(sym.p_)->st_shndx;\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }\n        pcVar11 = strchr(pcVar14,0x40);\n        ver_key = 0;\n        bVar9 = Parameters::incremental_update(parameters);\n        if (bVar9 || pcVar11 == (char *)0x0) {\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }\n        local_68 = &this->namepool_;\n        local_70 = &name_key;\n        sym2.p_ = (Sym_data<32> *)symbuf;\n        pSVar16 = &sym2;\n        if (bVar8) {\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }\n        else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }\nLAB_0012deae:\n        pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);\n        sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13);\n        if (sym_00 != (Sized_symbol<32> *)0x0) {\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }\n        local_50 = local_50 + 1;\n        syms = syms + 0x10;\n        if (count == local_50) {\n          return;\n        }\n      }" { (expression_statement "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0;" (assignment_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50] = (Symbol *)0x0" (subscript_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start[local_50]" (field_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n        _M_start" (field_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std" (binary_expression "sympointers->super__Vector_base<gold" (field_expression "sympointers->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) [ identifier ]) = (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sym.p_ = (Sym_data<32> *)syms;" (assignment_expression "sym.p_ = (Sym_data<32> *)syms" (field_expression "sym.p_" identifier . field_identifier) = (parenthesized_expression "(Sym_data<32> *)syms" ( (binary_expression "Sym_data<32> *)syms" (binary_expression "Sym_data<32" identifier < number_literal) > (pointer_expression "*)syms" * (ERROR ")" )) identifier)) ))) ;) (expression_statement "uVar13 = *(uint *)syms;" (assignment_expression "uVar13 = *(uint *)syms" identifier = (pointer_expression "*(uint *)syms" * (cast_expression "(uint *)syms" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (sym_name_size <= uVar13) break;" if (parenthesized_expression "(sym_name_size <= uVar13)" ( (binary_expression "sym_name_size <= uVar13" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pcVar14 = sym_names + uVar13;" (assignment_expression "pcVar14 = sym_names + uVar13" identifier = (binary_expression "sym_names + uVar13" identifier + identifier)) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_0012e426;" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0012e426;" goto statement_identifier ;)) (if_statement "if ((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')) {\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }" if (parenthesized_expression "((((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_'))" ( (binary_expression "(((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')) &&\n           (pcVar14[1] == '_')" (parenthesized_expression "(((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_'))" ( (binary_expression "((parameters->options_->relocatable_).value == false) && (*pcVar14 == '_')" (parenthesized_expression "((parameters->options_->relocatable_).value == false)" ( (binary_expression "(parameters->options_->relocatable_).value == false" (field_expression "(parameters->options_->relocatable_).value" (parenthesized_expression "(parameters->options_->relocatable_)" ( (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "(*pcVar14 == '_')" ( (binary_expression "*pcVar14 == '_'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'_'" ' character ')) ))) )) && (parenthesized_expression "(pcVar14[1] == '_')" ( (binary_expression "pcVar14[1] == '_'" (subscript_expression "pcVar14[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n          iVar12 = 0xf;\n          bVar10 = (byte)pcVar14[2] < 0x5f;\n          bVar18 = pcVar14[2] == 0x5f;\n          pbVar15 = (byte *)(pcVar14 + bVar18);\n          pbVar17 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);\n          if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }\n        }" { (expression_statement "iVar12 = 0xf;" (assignment_expression "iVar12 = 0xf" identifier = number_literal) ;) (expression_statement "bVar10 = (byte)pcVar14[2] < 0x5f;" (assignment_expression "bVar10 = (byte)pcVar14[2] < 0x5f" identifier = (binary_expression "(byte)pcVar14[2] < 0x5f" (cast_expression "(byte)pcVar14[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[2]" identifier [ number_literal ])) < number_literal)) ;) (expression_statement "bVar18 = pcVar14[2] == 0x5f;" (assignment_expression "bVar18 = pcVar14[2] == 0x5f" identifier = (binary_expression "pcVar14[2] == 0x5f" (subscript_expression "pcVar14[2]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "pbVar15 = (byte *)(pcVar14 + bVar18);" (assignment_expression "pbVar15 = (byte *)(pcVar14 + bVar18)" identifier = (cast_expression "(byte *)(pcVar14 + bVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + bVar18)" ( (binary_expression "pcVar14 + bVar18" identifier + identifier) )))) ;) (expression_statement "pbVar17 = (byte *)"__gnu_lto_slim";" (assignment_expression "pbVar17 = (byte *)"__gnu_lto_slim"" identifier = (cast_expression "(byte *)"__gnu_lto_slim"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__gnu_lto_slim"" " string_content "))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          } while (bVar18);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar10 = *pbVar15 < *pbVar17;\n            bVar18 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n            pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar15 < *pbVar17;" (assignment_expression "bVar10 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar18 = *pbVar15 == *pbVar17;" (assignment_expression "bVar18 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if ((!bVar10 && !bVar18) == bVar10) {\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }" if (parenthesized_expression "((!bVar10 && !bVar18) == bVar10)" ( (binary_expression "(!bVar10 && !bVar18) == bVar10" (parenthesized_expression "(!bVar10 && !bVar18)" ( (binary_expression "!bVar10 && !bVar18" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier) )) (compound_statement "{\n            pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;\n            pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");\n            gold_info(pcVar11,pcVar5);\n          }" { (expression_statement "pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p;" (assignment_expression "pcVar5 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p" identifier = (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus._M_p" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_.\n                     _M_dataplus" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar11 = (char *)gettext("%s: plugin needed to handle lto object");" (assignment_expression "pcVar11 = (char *)gettext("%s: plugin needed to handle lto object")" identifier = (cast_expression "(char *)gettext("%s: plugin needed to handle lto object")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: plugin needed to handle lto object")" identifier (argument_list "("%s: plugin needed to handle lto object")" ( (string_literal ""%s: plugin needed to handle lto object"" " string_content ") ))))) ;) (expression_statement "gold_info(pcVar11,pcVar5);" (call_expression "gold_info(pcVar11,pcVar5)" identifier (argument_list "(pcVar11,pcVar5)" ( identifier , identifier ))) ;) })) })) (expression_statement "local_5c = (uint)(sym.p_)->st_shndx;" (assignment_expression "local_5c = (uint)(sym.p_)->st_shndx" identifier = (field_expression "(uint)(sym.p_)->st_shndx" (call_expression "(uint)(sym.p_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(sym.p_)" ( (field_expression "sym.p_" identifier . field_identifier) ))) -> field_identifier)) ;) (if_statement "if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }" if (parenthesized_expression "(local_5c < 0xff00)" ( (binary_expression "local_5c < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_0012dfbd:\n          uVar13 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }\n        }" { (labeled_statement "LAB_0012dfbd:\n          uVar13 = local_5c;" statement_identifier : (expression_statement "uVar13 = local_5c;" (assignment_expression "uVar13 = local_5c" identifier = identifier) ;)) (if_statement "if (local_5c == 0) {\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }\n          else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }" if (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) (compound_statement "{\n            local_5c = 0;\n            bVar10 = true;\n            bVar18 = false;\n          }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) }) (else_clause "else {\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }" else (compound_statement "{\n            *defined = *defined + 1;\n            ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;\n            if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }\n          }" { (expression_statement "*defined = *defined + 1;" (assignment_expression "*defined = *defined + 1" (pointer_expression "*defined" * identifier) = (binary_expression "*defined + 1" (pointer_expression "*defined" * identifier) + number_literal)) ;) (expression_statement "ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start;" (field_expression "ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start" (field_expression "ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl" (binary_expression "ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar4 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold" identifier = (binary_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base<gold" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                      super__Vector_base" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }" if (parenthesized_expression "((uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c)" ( (binary_expression "(uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= local_5c" (call_expression "(uint)((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2)" ( (binary_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4 >> 2" (binary_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar4" (field_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish" (field_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl" (binary_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base<gold" (cast_expression "(int)(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                            super__Vector_base" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.output_sections_" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar4" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");" (call_expression "do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included")" identifier (argument_list "("../../gold/object.h",0x50b,"is_section_included")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""is_section_included"" " string_content ") ))) ;) })) (if_statement "if (ppOVar4[local_5c] == (Output_section *)0x0) {\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }\n            else {\n              bVar10 = true;\n              bVar18 = false;\n            }" if (parenthesized_expression "(ppOVar4[local_5c] == (Output_section *)0x0)" ( (binary_expression "ppOVar4[local_5c] == (Output_section *)0x0" (subscript_expression "ppOVar4[local_5c]" identifier [ identifier ]) == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);\n              if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }\n            }" { (expression_statement "bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c);" (assignment_expression "bVar10 = is_section_folded(this,(Relobj *)relobj,local_5c)" identifier = (call_expression "is_section_folded(this,(Relobj *)relobj,local_5c)" identifier (argument_list "(this,(Relobj *)relobj,local_5c)" ( identifier , (cast_expression "(Relobj *)relobj" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar10) {\n                bVar18 = false;\n              }\n              else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n                bVar18 = false;\n              }" { (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) }) (else_clause "else {\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }" else (compound_statement "{\n                bVar10 = true;\n                bVar18 = true;\n                local_5c = 0;\n              }" { (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n              bVar10 = true;\n              bVar18 = false;\n            }" else (compound_statement "{\n              bVar10 = true;\n              bVar18 = false;\n            }" { (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) }))) }))) }) (else_clause "else {\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }" else (compound_statement "{\n          if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }\n          bVar10 = false;\n          bVar18 = false;\n          *defined = *defined + 1;\n          uVar13 = 0;\n        }" { (if_statement "if (local_5c == 0xffff) {\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }" if (parenthesized_expression "(local_5c == 0xffff)" ( (binary_expression "local_5c == 0xffff" identifier == number_literal) )) (compound_statement "{\n            this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;\n            if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }\n            local_5c = Xindex::sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);\n            goto LAB_0012dfbd;\n          }" { (expression_statement "this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_;" (assignment_expression "this_02 = (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_" identifier = (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (this_02 == (Xindex *)0x0) {\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }" if (parenthesized_expression "(this_02 == (Xindex *)0x0)" ( (binary_expression "this_02 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);\n              (relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;\n            }" { (expression_statement "this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj);" (assignment_expression "this_02 = (Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj)" identifier = (cast_expression "(Xindex *)\n                        (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])(relobj)" (parenthesized_expression "(*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b])" ( (pointer_expression "*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b]" * (subscript_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object[0x1b]" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                          _vptr_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(relobj)" ( identifier ))))) ;) (expression_statement "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02;" (assignment_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_ = this_02" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.xindex_" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) })) (ERROR "local_5c = Xindex::" (assignment_expression "local_5c = Xindex" identifier = identifier) : :) (expression_statement "sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset);" (call_expression "sym_xindex_to_shndx\n                                 (this_02,(Object *)relobj,local_50 + symndx_offset)" identifier (argument_list "(this_02,(Object *)relobj,local_50 + symndx_offset)" ( identifier , (cast_expression "(Object *)relobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "local_50 + symndx_offset" identifier + identifier) ))) ;) (goto_statement "goto LAB_0012dfbd;" goto statement_identifier ;) })) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "*defined = *defined + 1;" (assignment_expression "*defined = *defined + 1" (pointer_expression "*defined" * identifier) = (binary_expression "*defined + 1" (pointer_expression "*defined" * identifier) + number_literal)) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) }))) (expression_statement "pcVar11 = strchr(pcVar14,0x40);" (assignment_expression "pcVar11 = strchr(pcVar14,0x40)" identifier = (call_expression "strchr(pcVar14,0x40)" identifier (argument_list "(pcVar14,0x40)" ( identifier , number_literal )))) ;) (expression_statement "ver_key = 0;" (assignment_expression "ver_key = 0" identifier = number_literal) ;) (ERROR "bVar9 = Parameters::" (assignment_expression "bVar9 = Parameters" identifier = identifier) : :) (expression_statement "incremental_update(parameters);" (call_expression "incremental_update(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (if_statement "if (bVar9 || pcVar11 == (char *)0x0) {\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }" if (parenthesized_expression "(bVar9 || pcVar11 == (char *)0x0)" ( (binary_expression "bVar9 || pcVar11 == (char *)0x0" identifier || (binary_expression "pcVar11 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          local_6c = strlen(pcVar14);\n          this_01 = this->version_script_;\n          local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;\n          if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }\n        }" { (expression_statement "local_6c = strlen(pcVar14);" (assignment_expression "local_6c = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "this_01 = this->version_script_;" (assignment_expression "this_01 = this->version_script_" identifier = (field_expression "this->version_script_" identifier -> field_identifier)) ;) (expression_statement "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0;" (binary_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish && local_5c != 0" (field_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_finish" (field_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl" (binary_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_" (binary_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold" (binary_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std" (binary_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start !=\n                     (this_01->version_trees_).\n                     super__Vector_base<gold" (field_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl._M_start" (field_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                     _M_impl" (binary_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_" (binary_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std::allocator<gold" (binary_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold::Version_tree*,_std" (assignment_expression "local_7d = (this_01->version_trees_).\n                     super__Vector_base<gold" identifier = (binary_expression "(this_01->version_trees_).\n                     super__Vector_base<gold" (field_expression "(this_01->version_trees_).\n                     super__Vector_base" (parenthesized_expression "(this_01->version_trees_)" ( (field_expression "this_01->version_trees_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Version_tree" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (binary_expression "(this_01->version_trees_).\n                     super__Vector_base<gold" (field_expression "(this_01->version_trees_).\n                     super__Vector_base" (parenthesized_expression "(this_01->version_trees_)" ( (field_expression "this_01->version_trees_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Version_tree" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) && (binary_expression "local_5c != 0" identifier != number_literal)) ;) (if_statement "if (local_7d) {\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }\n          else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }" if (parenthesized_expression "(local_7d)" ( identifier )) (compound_statement "{\n            symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;\n            symbuf[4] = '\0';\n            symbuf[5] = '\0';\n            symbuf[6] = '\0';\n            symbuf[7] = '\0';\n            symbuf._0_4_ = symbuf + 8;\n                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */\n            local_7d = Version_script_info::get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);\n            if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }\n            if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }\n          }" { (expression_statement "symbuf._8_4_ = symbuf._8_4_ & 0xffffff00;" (assignment_expression "symbuf._8_4_ = symbuf._8_4_ & 0xffffff00" (field_expression "symbuf._8_4_" identifier . field_identifier) = (binary_expression "symbuf._8_4_ & 0xffffff00" (field_expression "symbuf._8_4_" identifier . field_identifier) & number_literal)) ;) (expression_statement "symbuf[4] = '\0';" (assignment_expression "symbuf[4] = '\0'" (subscript_expression "symbuf[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "symbuf[5] = '\0';" (assignment_expression "symbuf[5] = '\0'" (subscript_expression "symbuf[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "symbuf[6] = '\0';" (assignment_expression "symbuf[6] = '\0'" (subscript_expression "symbuf[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "symbuf[7] = '\0';" (assignment_expression "symbuf[7] = '\0'" (subscript_expression "symbuf[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "symbuf._0_4_ = symbuf + 8;" (assignment_expression "symbuf._0_4_ = symbuf + 8" (field_expression "symbuf._0_4_" identifier . field_identifier) = (binary_expression "symbuf + 8" identifier + number_literal)) ;) comment (ERROR "local_7d = Version_script_info::" (assignment_expression "local_7d = Version_script_info" identifier = identifier) : :) (expression_statement "get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key);" (call_expression "get_symbol_version\n                                 (this_01,pcVar14,(string *)symbuf,(bool *)&name_key)" identifier (argument_list "(this_01,pcVar14,(string *)symbuf,(bool *)&name_key)" ( identifier , identifier , (cast_expression "(string *)symbuf" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bool *)&name_key" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&name_key" & identifier)) ))) ;) (if_statement "if ((local_7d) && ((char)name_key != '\0')) {\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }\n            else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }" if (parenthesized_expression "((local_7d) && ((char)name_key != '\0'))" ( (binary_expression "(local_7d) && ((char)name_key != '\0')" (parenthesized_expression "(local_7d)" ( identifier )) && (parenthesized_expression "((char)name_key != '\0')" ( (binary_expression "(char)name_key != '\0'" (cast_expression "(char)name_key" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }\n                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */\n              local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );\n              local_7d = false;\n              local_7c = true;\n            }" { (if_statement "if (symbuf._4_4_ == 0) {\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }" if (parenthesized_expression "(symbuf._4_4_ == 0)" ( (binary_expression "symbuf._4_4_ == 0" (field_expression "symbuf._4_4_" identifier . field_identifier) == number_literal) )) (compound_statement "{\n                local_7d = false;\n                goto LAB_0012e2b0;\n              }" { (expression_statement "local_7d = false;" (assignment_expression "local_7d = false" identifier = false) ;) (goto_statement "goto LAB_0012e2b0;" goto statement_identifier ;) })) comment (expression_statement "local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   );" (assignment_expression "local_74 = Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   )" identifier = (binary_expression "Stringpool_template<char>::add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   )" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add_with_length\n                                   (&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   )" identifier (argument_list "(&this->namepool_,(char *)symbuf._0_4_,symbuf._4_4_,true,&ver_key\n                                   )" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (cast_expression "(char *)symbuf._0_4_" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "symbuf._0_4_" identifier . field_identifier)) , (field_expression "symbuf._4_4_" identifier . field_identifier) , true , (pointer_expression "&ver_key" & identifier) ))))) ;) (expression_statement "local_7d = false;" (assignment_expression "local_7d = false" identifier = false) ;) (expression_statement "local_7c = true;" (assignment_expression "local_7c = true" identifier = true) ;) }) (else_clause "else {\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }" else (compound_statement "{\nLAB_0012e2b0:\n              local_7c = false;\n              local_74 = (char *)0x0;\n            }" { (labeled_statement "LAB_0012e2b0:\n              local_7c = false;" statement_identifier : (expression_statement "local_7c = false;" (assignment_expression "local_7c = false" identifier = false) ;)) (expression_statement "local_74 = (char *)0x0;" (assignment_expression "local_74 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if ((uchar *)symbuf._0_4_ != symbuf + 8) {\n              operator_delete((void *)symbuf._0_4_);\n            }" if (parenthesized_expression "((uchar *)symbuf._0_4_ != symbuf + 8)" ( (binary_expression "(uchar *)symbuf._0_4_ != symbuf + 8" (cast_expression "(uchar *)symbuf._0_4_" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symbuf._0_4_" identifier . field_identifier)) != (binary_expression "symbuf + 8" identifier + number_literal)) )) (compound_statement "{\n              operator_delete((void *)symbuf._0_4_);\n            }" { (expression_statement "operator_delete((void *)symbuf._0_4_);" (call_expression "operator_delete((void *)symbuf._0_4_)" identifier (argument_list "((void *)symbuf._0_4_)" ( (cast_expression "(void *)symbuf._0_4_" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "symbuf._0_4_" identifier . field_identifier)) ))) ;) })) }) (else_clause "else {\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }" else (compound_statement "{\n            local_7c = false;\n            local_74 = (char *)0x0;\n          }" { (expression_statement "local_7c = false;" (assignment_expression "local_7c = false" identifier = false) ;) (expression_statement "local_74 = (char *)0x0;" (assignment_expression "local_74 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }" else (compound_statement "{\n          local_6c = (int)pcVar11 - (int)pcVar14;\n          local_7c = pcVar11[1] == '@';\n          if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }\n          local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);\n          local_7d = false;\n        }" { (expression_statement "local_6c = (int)pcVar11 - (int)pcVar14;" (assignment_expression "local_6c = (int)pcVar11 - (int)pcVar14" identifier = (binary_expression "(int)pcVar11 - (int)pcVar14" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_7c = pcVar11[1] == '@';" (assignment_expression "local_7c = pcVar11[1] == '@'" identifier = (binary_expression "pcVar11[1] == '@'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) == (char_literal "'@'" ' character '))) ;) (if_statement "if (local_7c) {\n            pcVar11 = pcVar11 + 2;\n          }\n          else {\n            pcVar11 = pcVar11 + 1;\n          }" if (parenthesized_expression "(local_7c)" ( identifier )) (compound_statement "{\n            pcVar11 = pcVar11 + 2;\n          }" { (expression_statement "pcVar11 = pcVar11 + 2;" (assignment_expression "pcVar11 = pcVar11 + 2" identifier = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n            pcVar11 = pcVar11 + 1;\n          }" else (compound_statement "{\n            pcVar11 = pcVar11 + 1;\n          }" { (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key);" (assignment_expression "local_74 = Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key)" identifier = (binary_expression "Stringpool_template<char>::add(&this->namepool_,pcVar11,true,&ver_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(&this->namepool_,pcVar11,true,&ver_key)" identifier (argument_list "(&this->namepool_,pcVar11,true,&ver_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , identifier , true , (pointer_expression "&ver_key" & identifier) ))))) ;) (expression_statement "local_7d = false;" (assignment_expression "local_7d = false" identifier = false) ;) }))) (expression_statement "local_68 = &this->namepool_;" (assignment_expression "local_68 = &this->namepool_" identifier = (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier))) ;) (expression_statement "local_70 = &name_key;" (assignment_expression "local_70 = &name_key" identifier = (pointer_expression "&name_key" & identifier)) ;) (expression_statement "sym2.p_ = (Sym_data<32> *)symbuf;" (assignment_expression "sym2.p_ = (Sym_data<32> *)symbuf" (field_expression "sym2.p_" identifier . field_identifier) = (parenthesized_expression "(Sym_data<32> *)symbuf" ( (binary_expression "Sym_data<32> *)symbuf" (binary_expression "Sym_data<32" identifier < number_literal) > (pointer_expression "*)symbuf" * (ERROR ")" )) identifier)) ))) ;) (expression_statement "pSVar16 = &sym2;" (assignment_expression "pSVar16 = &sym2" identifier = (pointer_expression "&sym2" & identifier)) ;) (if_statement "if (bVar8) {\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }\n        else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\n          symbuf._0_4_ = *(undefined4 *)syms;\n          symbuf._4_4_ = *(undefined4 *)(syms + 4);\n          symbuf._8_4_ = *(undefined4 *)(syms + 8);\n          symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n          if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }\n          bVar10 = false;\n          local_5c = 0xfff1;\n        }" { (expression_statement "symbuf._0_4_ = *(undefined4 *)syms;" (assignment_expression "symbuf._0_4_ = *(undefined4 *)syms" (field_expression "symbuf._0_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)syms" * (cast_expression "(undefined4 *)syms" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "symbuf._4_4_ = *(undefined4 *)(syms + 4);" (assignment_expression "symbuf._4_4_ = *(undefined4 *)(syms + 4)" (field_expression "symbuf._4_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(syms + 4)" * (cast_expression "(undefined4 *)(syms + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(syms + 4)" ( (binary_expression "syms + 4" identifier + number_literal) ))))) ;) (expression_statement "symbuf._8_4_ = *(undefined4 *)(syms + 8);" (assignment_expression "symbuf._8_4_ = *(undefined4 *)(syms + 8)" (field_expression "symbuf._8_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(syms + 8)" * (cast_expression "(undefined4 *)(syms + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(syms + 8)" ( (binary_expression "syms + 8" identifier + number_literal) ))))) ;) (expression_statement "symbuf._12_4_ = *(undefined4 *)(syms + 0xc);" (assignment_expression "symbuf._12_4_ = *(undefined4 *)(syms + 0xc)" (field_expression "symbuf._12_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(syms + 0xc)" * (cast_expression "(undefined4 *)(syms + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(syms + 0xc)" ( (binary_expression "syms + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)) {\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }" if (parenthesized_expression "(((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1))" ( (binary_expression "((uVar13 == 0) || (bVar10 == false)) || (relobj->e_type_ != 1)" (parenthesized_expression "((uVar13 == 0) || (bVar10 == false))" ( (binary_expression "(uVar13 == 0) || (bVar10 == false)" (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar10 == false)" ( (binary_expression "bVar10 == false" identifier == false) ))) )) || (parenthesized_expression "(relobj->e_type_ != 1)" ( (binary_expression "relobj->e_type_ != 1" (field_expression "relobj->e_type_" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }" { (if_statement "if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }" if (parenthesized_expression "(((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0)" ( (binary_expression "((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0" (parenthesized_expression "((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                )" ( (binary_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar10 = false;\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) (goto_statement "goto LAB_0012e0e6;" goto statement_identifier ;) })) }) (else_clause "else {\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }" else (compound_statement "{\n            EVar6 = (sym.p_)->st_value;\n            iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);\n            symbuf._4_4_ = iVar12 + EVar6;\n            if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }\n          }" { (expression_statement "EVar6 = (sym.p_)->st_value;" (assignment_expression "EVar6 = (sym.p_)->st_value" identifier = (field_expression "(sym.p_)->st_value" (parenthesized_expression "(sym.p_)" ( (field_expression "sym.p_" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13);" (assignment_expression "iVar12 = (*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13)" identifier = (call_expression "(*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])(relobj,uVar13)" (parenthesized_expression "(*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13])" ( (pointer_expression "*(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13]" * (subscript_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x13]" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(relobj,uVar13)" ( identifier , identifier )))) ;) (expression_statement "symbuf._4_4_ = iVar12 + EVar6;" (assignment_expression "symbuf._4_4_ = iVar12 + EVar6" (field_expression "symbuf._4_4_" identifier . field_identifier) = (binary_expression "iVar12 + EVar6" identifier + identifier)) ;) (if_statement "if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0) {\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }" if (parenthesized_expression "(((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0)" ( (binary_expression "((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                ) != 0" (parenthesized_expression "((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10\n                )" ( (binary_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar10 = false;\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;\n              if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }\n              goto LAB_0012deae;\n            }" { (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) (labeled_statement "LAB_0012e0e6:\n              bVar2 = (sym2.p_)->st_other;" statement_identifier : (expression_statement "bVar2 = (sym2.p_)->st_other;" (assignment_expression "bVar2 = (sym2.p_)->st_other" identifier = (field_expression "(sym2.p_)->st_other" (parenthesized_expression "(sym2.p_)" ( (field_expression "sym2.p_" identifier . field_identifier) )) -> field_identifier)) ;)) (if_statement "if (((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)) {\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }" if (parenthesized_expression "(((bVar2 & 3) == 0) || ((bVar2 & 3) == 3))" ( (binary_expression "((bVar2 & 3) == 0) || ((bVar2 & 3) == 3)" (parenthesized_expression "((bVar2 & 3) == 0)" ( (binary_expression "(bVar2 & 3) == 0" (parenthesized_expression "(bVar2 & 3)" ( (binary_expression "bVar2 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((bVar2 & 3) == 3)" ( (binary_expression "(bVar2 & 3) == 3" (parenthesized_expression "(bVar2 & 3)" ( (binary_expression "bVar2 & 3" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                symbuf[0xd] = (bVar2 & 0xfc) + 2;\n              }" { (expression_statement "symbuf[0xd] = (bVar2 & 0xfc) + 2;" (assignment_expression "symbuf[0xd] = (bVar2 & 0xfc) + 2" (subscript_expression "symbuf[0xd]" identifier [ number_literal ]) = (binary_expression "(bVar2 & 0xfc) + 2" (parenthesized_expression "(bVar2 & 0xfc)" ( (binary_expression "bVar2 & 0xfc" identifier & number_literal) )) + number_literal)) ;) })) (goto_statement "goto LAB_0012deae;" goto statement_identifier ;) })) }))) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) }) (else_clause "else {\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }" else (compound_statement "{\n          if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }\n          pSVar16 = &sym;\n        }" { (if_statement "if (((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0) {\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }" if (parenthesized_expression "(((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0)" ( (binary_expression "((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)\n              != 0" (parenthesized_expression "((relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10)" ( (binary_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c & 0x10" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object.field_0x2c" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(relobj->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(relobj->super_Sized_relobj<32,_false>)" ( (comma_expression "relobj->super_Sized_relobj<32,_false" (binary_expression "relobj->super_Sized_relobj<32" (field_expression "relobj->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }\n            symbuf._0_4_ = *(undefined4 *)syms;\n            symbuf._4_4_ = *(undefined4 *)(syms + 4);\n            symbuf._8_4_ = *(undefined4 *)(syms + 8);\n            symbuf._12_4_ = *(undefined4 *)(syms + 0xc);\n            goto LAB_0012e0e6;\n          }" { (if_statement "if (uVar13 == 0) {\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }\n              bVar10 = false;\n            }" { (if_statement "if (bVar10 != false) {\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }" if (parenthesized_expression "(bVar10 != false)" ( (binary_expression "bVar10 != false" identifier != false) )) (compound_statement "{\n                bVar10 = true;\n                pSVar16 = &sym;\n                goto LAB_0012deae;\n              }" { (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "pSVar16 = &sym;" (assignment_expression "pSVar16 = &sym" identifier = (pointer_expression "&sym" & identifier)) ;) (goto_statement "goto LAB_0012deae;" goto statement_identifier ;) })) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) })) (expression_statement "symbuf._0_4_ = *(undefined4 *)syms;" (assignment_expression "symbuf._0_4_ = *(undefined4 *)syms" (field_expression "symbuf._0_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)syms" * (cast_expression "(undefined4 *)syms" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "symbuf._4_4_ = *(undefined4 *)(syms + 4);" (assignment_expression "symbuf._4_4_ = *(undefined4 *)(syms + 4)" (field_expression "symbuf._4_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(syms + 4)" * (cast_expression "(undefined4 *)(syms + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(syms + 4)" ( (binary_expression "syms + 4" identifier + number_literal) ))))) ;) (expression_statement "symbuf._8_4_ = *(undefined4 *)(syms + 8);" (assignment_expression "symbuf._8_4_ = *(undefined4 *)(syms + 8)" (field_expression "symbuf._8_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(syms + 8)" * (cast_expression "(undefined4 *)(syms + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(syms + 8)" ( (binary_expression "syms + 8" identifier + number_literal) ))))) ;) (expression_statement "symbuf._12_4_ = *(undefined4 *)(syms + 0xc);" (assignment_expression "symbuf._12_4_ = *(undefined4 *)(syms + 0xc)" (field_expression "symbuf._12_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)(syms + 0xc)" * (cast_expression "(undefined4 *)(syms + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(syms + 0xc)" ( (binary_expression "syms + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0012e0e6;" goto statement_identifier ;) })) (expression_statement "pSVar16 = &sym;" (assignment_expression "pSVar16 = &sym" identifier = (pointer_expression "&sym" & identifier)) ;) }))) (labeled_statement "LAB_0012deae:\n        pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);" statement_identifier : (expression_statement "pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70);" (assignment_expression "pcVar14 = Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70)" identifier = (binary_expression "Stringpool_template<char>::add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add_with_length\n                            (local_68,pcVar14,local_6c,true,local_70)" identifier (argument_list "(local_68,pcVar14,local_6c,true,local_70)" ( identifier , identifier , identifier , true , identifier ))))) ;)) (expression_statement "sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13);" (comma_expression "sym_00 = add_from_object<32,_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13)" (assignment_expression "sym_00 = add_from_object<32" identifier = (binary_expression "add_from_object<32" identifier < number_literal)) , (binary_expression "_false>\n                           (this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13)" identifier > (parenthesized_expression "(this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13)" ( (comma_expression "this,(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13" identifier , (comma_expression "(Object *)relobj,pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13" (cast_expression "(Object *)relobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (comma_expression "pcVar14,name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13" identifier , (comma_expression "name_key,local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13" identifier , (comma_expression "local_74,ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13" identifier , (comma_expression "ver_key,local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13" identifier , (comma_expression "local_7c,pSVar16\n                            ,local_5c,bVar10,uVar13" identifier , (comma_expression "pSVar16\n                            ,local_5c,bVar10,uVar13" identifier , (comma_expression "local_5c,bVar10,uVar13" identifier , (comma_expression "bVar10,uVar13" identifier , identifier)))))))))) )))) ;) (if_statement "if (sym_00 != (Sized_symbol<32> *)0x0) {\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }" if (parenthesized_expression "(sym_00 != (Sized_symbol<32> *)0x0)" ( (binary_expression "sym_00 != (Sized_symbol<32> *)0x0)" identifier != (parenthesized_expression "(Sized_symbol<32> *)0x0)" ( (binary_expression "Sized_symbol<32> *)0x0" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n          if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }\n          pGVar3 = parameters->options_;\n          if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }\n          if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }\n          (sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;\n        }" { (if_statement "if (local_7d != false) {\n            force_local(this,&sym_00->super_Symbol);\n          }" if (parenthesized_expression "(local_7d != false)" ( (binary_expression "local_7d != false" identifier != false) )) (compound_statement "{\n            force_local(this,&sym_00->super_Symbol);\n          }" { (expression_statement "force_local(this,&sym_00->super_Symbol);" (call_expression "force_local(this,&sym_00->super_Symbol)" identifier (argument_list "(this,&sym_00->super_Symbol)" ( identifier , (pointer_expression "&sym_00->super_Symbol" & (field_expression "sym_00->super_Symbol" identifier -> field_identifier)) ))) ;) })) (expression_statement "pGVar3 = parameters->options_;" (assignment_expression "pGVar3 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar3 == (General_options *)0x0) {\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar3 == (General_options *)0x0)" ( (binary_expression "pGVar3 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { (labeled_statement "LAB_0012e426:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if ((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))) {\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }" if (parenthesized_expression "((((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false))))))))" ( (binary_expression "(((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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             (((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))" (parenthesized_expression "(((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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 "((pGVar3->gc_sections_).value != false) &&\n              ((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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 "((pGVar3->gc_sections_).value != false)" ( (binary_expression "(pGVar3->gc_sections_).value != false" (field_expression "(pGVar3->gc_sections_).value" (parenthesized_expression "(pGVar3->gc_sections_)" ( (field_expression "pGVar3->gc_sections_" identifier -> field_identifier) )) . field_identifier) != false) )) && (parenthesized_expression "((((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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 "(((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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 "((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)) &&\n               ((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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 "((bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0))" ( (binary_expression "(bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))\n                && (((sym_00->super_Symbol).field_0x2b & 0x10) == 0)" (parenthesized_expression "(bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3))" ( (comma_expression "bVar2 = (sym_00->super_Symbol).field_0x29, (bVar2 & 3) == 0 || ((bVar2 & 3) == 3)" (assignment_expression "bVar2 = (sym_00->super_Symbol).field_0x29" identifier = (field_expression "(sym_00->super_Symbol).field_0x29" (parenthesized_expression "(sym_00->super_Symbol)" ( (field_expression "sym_00->super_Symbol" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(bVar2 & 3) == 0 || ((bVar2 & 3) == 3)" (binary_expression "(bVar2 & 3) == 0" (parenthesized_expression "(bVar2 & 3)" ( (binary_expression "bVar2 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((bVar2 & 3) == 3)" ( (binary_expression "(bVar2 & 3) == 3" (parenthesized_expression "(bVar2 & 3)" ( (binary_expression "bVar2 & 3" identifier & number_literal) )) == number_literal) )))) )) && (parenthesized_expression "(((sym_00->super_Symbol).field_0x2b & 0x10) == 0)" ( (binary_expression "((sym_00->super_Symbol).field_0x2b & 0x10) == 0" (parenthesized_expression "((sym_00->super_Symbol).field_0x2b & 0x10)" ( (binary_expression "(sym_00->super_Symbol).field_0x2b & 0x10" (field_expression "(sym_00->super_Symbol).field_0x2b" (parenthesized_expression "(sym_00->super_Symbol)" ( (field_expression "sym_00->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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 "(((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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 "((sym_00->super_Symbol).field_0x2a & 7) != 0 ||\n                (((uint)((sym_00->super_Symbol).u1_.output_segment)->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 "((sym_00->super_Symbol).field_0x2a & 7) != 0" (parenthesized_expression "((sym_00->super_Symbol).field_0x2a & 7)" ( (binary_expression "(sym_00->super_Symbol).field_0x2a & 7" (field_expression "(sym_00->super_Symbol).field_0x2a" (parenthesized_expression "(sym_00->super_Symbol)" ( (field_expression "sym_00->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "(((uint)((sym_00->super_Symbol).u1_.output_segment)->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)((sym_00->super_Symbol).u1_.output_segment)->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)((sym_00->super_Symbol).u1_.output_segment)->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)((sym_00->super_Symbol).u1_.output_segment)->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)((sym_00->super_Symbol).u1_.output_segment)->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)((sym_00->super_Symbol).u1_.output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "(uint)((sym_00->super_Symbol).u1_.output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(uint)((sym_00->super_Symbol).u1_.output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(uint)((sym_00->super_Symbol).u1_.output_segment)->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std" (binary_expression "(uint)((sym_00->super_Symbol).u1_.output_segment)->output_lists_[3].\n                        super__Vector_base<gold" (field_expression "(uint)((sym_00->super_Symbol).u1_.output_segment)->output_lists_[3].\n                        super__Vector_base" (subscript_expression "(uint)((sym_00->super_Symbol).u1_.output_segment)->output_lists_[3]" (field_expression "(uint)((sym_00->super_Symbol).u1_.output_segment)->output_lists_" (call_expression "(uint)((sym_00->super_Symbol).u1_.output_segment)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((sym_00->super_Symbol).u1_.output_segment)" ( (field_expression "(sym_00->super_Symbol).u1_.output_segment" (field_expression "(sym_00->super_Symbol).u1_" (parenthesized_expression "(sym_00->super_Symbol)" ( (field_expression "sym_00->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) -> field_identifier) [ number_literal ]) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "(((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))))" ( (parenthesized_expression "((pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false))))))" ( (binary_expression "(pGVar3->shared_).value != false ||\n              (((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))" (binary_expression "(pGVar3->shared_).value != false" (field_expression "(pGVar3->shared_).value" (parenthesized_expression "(pGVar3->shared_)" ( (field_expression "pGVar3->shared_" identifier -> field_identifier) )) . field_identifier) != false) || (parenthesized_expression "(((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))))" ( (parenthesized_expression "((pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false))))" ( (binary_expression "(pGVar3->export_dynamic_).value != false ||\n               ((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))" (binary_expression "(pGVar3->export_dynamic_).value != false" (field_expression "(pGVar3->export_dynamic_).value" (parenthesized_expression "(pGVar3->export_dynamic_)" ( (field_expression "pGVar3->export_dynamic_" identifier -> field_identifier) )) . field_identifier) != false) || (parenthesized_expression "((bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)))" ( (parenthesized_expression "(bVar10 = Version_script_info::get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false))" ( (ERROR "bVar10 = Version_script_info::" (assignment_expression "bVar10 = Version_script_info" identifier = identifier) : :) (comma_expression "get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1),\n                bVar10 && (is_global_1 == false)" (call_expression "get_symbol_version\n                                    (&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1)" identifier (argument_list "(&(pGVar3->dynamic_list_).version_script_info_,\n                                     (sym_00->super_Symbol).name_,(string *)0x0,&is_global_1)" ( (pointer_expression "&(pGVar3->dynamic_list_).version_script_info_" & (field_expression "(pGVar3->dynamic_list_).version_script_info_" (parenthesized_expression "(pGVar3->dynamic_list_)" ( (field_expression "pGVar3->dynamic_list_" identifier -> field_identifier) )) . field_identifier)) , (field_expression "(sym_00->super_Symbol).name_" (parenthesized_expression "(sym_00->super_Symbol)" ( (field_expression "sym_00->super_Symbol" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(string *)0x0" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_global_1" & identifier) ))) , (binary_expression "bVar10 && (is_global_1 == false)" identifier && (parenthesized_expression "(is_global_1 == false)" ( (binary_expression "is_global_1 == false" identifier == false) )))) )) ))) )) ))) )) ))) )) (compound_statement "{\n            gc_mark_symbol(this,&sym_00->super_Symbol);\n          }" { (expression_statement "gc_mark_symbol(this,&sym_00->super_Symbol);" (call_expression "gc_mark_symbol(this,&sym_00->super_Symbol)" identifier (argument_list "(this,&sym_00->super_Symbol)" ( identifier , (pointer_expression "&sym_00->super_Symbol" & (field_expression "sym_00->super_Symbol" identifier -> field_identifier)) ))) ;) })) (if_statement "if (bVar18) {\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n            puVar1 = &(sym_00->super_Symbol).field_0x2b;\n            *puVar1 = *puVar1 | 0x80;\n          }" { (expression_statement "puVar1 = &(sym_00->super_Symbol).field_0x2b;" (assignment_expression "puVar1 = &(sym_00->super_Symbol).field_0x2b" identifier = (pointer_expression "&(sym_00->super_Symbol).field_0x2b" & (field_expression "(sym_00->super_Symbol).field_0x2b" (parenthesized_expression "(sym_00->super_Symbol)" ( (field_expression "sym_00->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x80;" (assignment_expression "*puVar1 = *puVar1 | 0x80" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x80" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })) (expression_statement "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol;" (assignment_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50] = &sym_00->super_Symbol" (subscript_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start[local_50]" (field_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n          _M_start" (field_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "sympointers->super__Vector_base<gold::Symbol*,_std" (binary_expression "sympointers->super__Vector_base<gold" (field_expression "sympointers->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) [ identifier ]) = (pointer_expression "&sym_00->super_Symbol" & (field_expression "sym_00->super_Symbol" identifier -> field_identifier))) ;) })) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "syms = syms + 0x10;" (assignment_expression "syms = syms + 0x10" identifier = (binary_expression "syms + 0x10" identifier + number_literal)) ;) (if_statement "if (count == local_50) {\n          return;\n        }" if (parenthesized_expression "(count == local_50)" ( (binary_expression "count == local_50" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "pcVar14 = (char *)gettext("bad global symbol name offset %u at %zu");" (assignment_expression "pcVar14 = (char *)gettext("bad global symbol name offset %u at %zu")" identifier = (cast_expression "(char *)gettext("bad global symbol name offset %u at %zu")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("bad global symbol name offset %u at %zu")" identifier (argument_list "("bad global symbol name offset %u at %zu")" ( (string_literal ""bad global symbol name offset %u at %zu"" " string_content ") ))))) ;) (labeled_statement "Object::error((Object *)relobj,pcVar14,uVar13,local_50);" statement_identifier : (ERROR ":" :) (expression_statement "error((Object *)relobj,pcVar14,uVar13,local_50);" (call_expression "error((Object *)relobj,pcVar14,uVar13,local_50)" identifier (argument_list "((Object *)relobj,pcVar14,uVar13,local_50)" ( (cast_expression "(Object *)relobj" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier ))) ;)) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "syms = syms + 0x10;" (assignment_expression "syms = syms + 0x10" identifier = (binary_expression "syms + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(count != local_50)" ( (binary_expression "count != local_50" identifier != identifier) )) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)\n\n{\n  undefined4 **ppuVar1;\n  char cVar2;\n  byte bVar3;\n  char cVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  char *__s;\n  byte *pbVar10;\n  undefined4 ****ppppuVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char local_7d;\n  undefined4 local_74;\n  undefined4 *local_70;\n  size_t local_6c;\n  int local_68;\n  uint local_5c;\n  int local_50;\n  char local_45;\n  uint **local_44;\n  undefined4 local_40;\n  undefined4 ***local_3c;\n  undefined4 local_38;\n  uint **local_34;\n  uint *local_30;\n  uint *local_2c;\n  undefined4 local_28;\n  \n  iVar8 = DAT_00302378;\n  bVar15 = 0;\n  *param_9 = 0;\n  if (*(int *)(iVar8 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }\n  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  if (param_2[7] == 0) {\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar2 = FUN_0005cf90(param_2[7]);\n  local_50 = 0;\n  if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)\n\n{\n  undefined4 **ppuVar1;\n  char cVar2;\n  byte bVar3;\n  char cVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  char *__s;\n  byte *pbVar10;\n  undefined4 ****ppppuVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char local_7d;\n  undefined4 local_74;\n  undefined4 *local_70;\n  size_t local_6c;\n  int local_68;\n  uint local_5c;\n  int local_50;\n  char local_45;\n  uint **local_44;\n  undefined4 local_40;\n  undefined4 ***local_3c;\n  undefined4 local_38;\n  uint **local_34;\n  uint *local_30;\n  uint *local_2c;\n  undefined4 local_28;\n  \n  iVar8 = DAT_00302378;\n  bVar15 = 0;\n  *param_9 = 0;\n  if (*(int *)(iVar8 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }\n  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  if (param_2[7] == 0) {\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar2 = FUN_0005cf90(param_2[7]);\n  local_50 = 0;\n  if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)" identifier (parameter_list "(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 ***param_3" type_identifier (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined4 **param_7" type_identifier (pointer_declarator "**param_7" * (pointer_declarator "*param_7" * identifier))) , (parameter_declaration "int *param_8" primitive_type (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "int *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  undefined4 **ppuVar1;\n  char cVar2;\n  byte bVar3;\n  char cVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  char *__s;\n  byte *pbVar10;\n  undefined4 ****ppppuVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char local_7d;\n  undefined4 local_74;\n  undefined4 *local_70;\n  size_t local_6c;\n  int local_68;\n  uint local_5c;\n  int local_50;\n  char local_45;\n  uint **local_44;\n  undefined4 local_40;\n  undefined4 ***local_3c;\n  undefined4 local_38;\n  uint **local_34;\n  uint *local_30;\n  uint *local_2c;\n  undefined4 local_28;\n  \n  iVar8 = DAT_00302378;\n  bVar15 = 0;\n  *param_9 = 0;\n  if (*(int *)(iVar8 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }\n  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  if (param_2[7] == 0) {\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar2 = FUN_0005cf90(param_2[7]);\n  local_50 = 0;\n  if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }\n  return;\n}" { (declaration "undefined4 **ppuVar1;" type_identifier (pointer_declarator "**ppuVar1" * (pointer_declarator "*ppuVar1" * identifier)) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 ****ppppuVar11;" type_identifier (pointer_declarator "****ppppuVar11" * (pointer_declarator "***ppppuVar11" * (pointer_declarator "**ppppuVar11" * (pointer_declarator "*ppppuVar11" * identifier)))) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "char local_7d;" primitive_type identifier ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined4 *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "size_t local_6c;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "char local_45;" primitive_type identifier ;) (declaration "uint **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 ***local_3c;" type_identifier (pointer_declarator "***local_3c" * (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier))) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "uint **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (expression_statement "iVar8 = DAT_00302378;" (assignment_expression "iVar8 = DAT_00302378" identifier = identifier) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (if_statement "if (*(int *)(iVar8 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }" if (parenthesized_expression "(*(int *)(iVar8 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar8 + 0xc) == 0" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }" { (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",param_9)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;) })) (if_statement "if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }" if (parenthesized_expression "(**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20)" ( (binary_expression "**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20" (pointer_expression "**(int **)(*(int *)(iVar8 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(iVar8 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(iVar8 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar8 + 0xc) + 4)" ( (binary_expression "*(int *)(iVar8 + 0xc) + 4" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) + number_literal) ))))) != number_literal) )) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }" { (expression_statement "FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");" (call_expression "FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj")" identifier (argument_list "("../../gold/symtab.cc",0x4a6,"add_from_relobj")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""add_from_relobj"" " string_content ") ))) ;) })) (if_statement "if (param_2[7] == 0) {\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }" if (parenthesized_expression "(param_2[7] == 0)" ( (binary_expression "param_2[7] == 0" (subscript_expression "param_2[7]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }" { (expression_statement "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");" (call_expression "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file")" identifier (argument_list "("../../gold/object.h",0x1ea,"input_file")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""input_file"" " string_content ") ))) ;) })) (expression_statement "cVar2 = FUN_0005cf90(param_2[7]);" (assignment_expression "cVar2 = FUN_0005cf90(param_2[7])" identifier = (call_expression "FUN_0005cf90(param_2[7])" identifier (argument_list "(param_2[7])" ( (subscript_expression "param_2[7]" identifier [ number_literal ]) )))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (if_statement "if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }" { (do_statement "do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);" do (compound_statement "{\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    }" { (while_statement "while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }" { (expression_statement "*(undefined4 *)(*param_8 + local_50 * 4) = 0;" (assignment_expression "*(undefined4 *)(*param_8 + local_50 * 4) = 0" (pointer_expression "*(undefined4 *)(*param_8 + local_50 * 4)" * (cast_expression "(undefined4 *)(*param_8 + local_50 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_8 + local_50 * 4)" ( (binary_expression "*param_8 + local_50 * 4" (pointer_expression "*param_8" * identifier) + (binary_expression "local_50 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "local_44 = (uint **)param_3;" (assignment_expression "local_44 = (uint **)param_3" identifier = (cast_expression "(uint **)param_3" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "ppuVar1 = *param_3;" (assignment_expression "ppuVar1 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (param_7 <= ppuVar1) break;" if (parenthesized_expression "(param_7 <= ppuVar1)" ( (binary_expression "param_7 <= ppuVar1" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "__s = (char *)((int)ppuVar1 + param_6);" (assignment_expression "__s = (char *)((int)ppuVar1 + param_6)" identifier = (cast_expression "(char *)((int)ppuVar1 + param_6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar1 + param_6)" ( (binary_expression "(int)ppuVar1 + param_6" (cast_expression "(int)ppuVar1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;" if (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0012e426;" goto statement_identifier ;)) (if_statement "if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }" if (parenthesized_expression "(((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_'))" ( (binary_expression "((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')" (parenthesized_expression "((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_'))" ( (binary_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')" (parenthesized_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_00302378 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*__s == '_')" ( (binary_expression "*__s == '_'" (pointer_expression "*__s" * identifier) == (char_literal "'_'" ' character ')) ))) )) && (parenthesized_expression "(__s[1] == '_')" ( (binary_expression "__s[1] == '_'" (subscript_expression "__s[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }" { (expression_statement "iVar8 = 0xf;" (assignment_expression "iVar8 = 0xf" identifier = number_literal) ;) (expression_statement "bVar13 = (byte)__s[2] < 0x5f;" (assignment_expression "bVar13 = (byte)__s[2] < 0x5f" identifier = (binary_expression "(byte)__s[2] < 0x5f" (cast_expression "(byte)__s[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "__s[2]" identifier [ number_literal ])) < number_literal)) ;) (expression_statement "bVar14 = __s[2] == 0x5f;" (assignment_expression "bVar14 = __s[2] == 0x5f" identifier = (binary_expression "__s[2] == 0x5f" (subscript_expression "__s[2]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "pbVar10 = (byte *)(__s + bVar14);" (assignment_expression "pbVar10 = (byte *)(__s + bVar14)" identifier = (cast_expression "(byte *)(__s + bVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__s + bVar14)" ( (binary_expression "__s + bVar14" identifier + identifier) )))) ;) (expression_statement "pbVar12 = (byte *)"__gnu_lto_slim";" (assignment_expression "pbVar12 = (byte *)"__gnu_lto_slim"" identifier = (cast_expression "(byte *)"__gnu_lto_slim"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__gnu_lto_slim"" " string_content "))) ;) (do_statement "do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);" do (compound_statement "{\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar10 < *pbVar12;" (assignment_expression "bVar13 = *pbVar10 < *pbVar12" identifier = (binary_expression "*pbVar10 < *pbVar12" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar14 = *pbVar10 == *pbVar12;" (assignment_expression "bVar14 = *pbVar10 == *pbVar12" identifier = (binary_expression "*pbVar10 == *pbVar12" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }" if (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" ( (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" ( (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (compound_statement "{\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }" { (expression_statement "iVar8 = param_2[1];" (assignment_expression "iVar8 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = gettext("%s: plugin needed to handle lto object");" (assignment_expression "uVar6 = gettext("%s: plugin needed to handle lto object")" identifier = (call_expression "gettext("%s: plugin needed to handle lto object")" identifier (argument_list "("%s: plugin needed to handle lto object")" ( (string_literal ""%s: plugin needed to handle lto object"" " string_content ") )))) ;) (expression_statement "FUN_0005ad60(uVar6,iVar8);" (call_expression "FUN_0005ad60(uVar6,iVar8)" identifier (argument_list "(uVar6,iVar8)" ( identifier , identifier ))) ;) })) })) (expression_statement "local_5c = (uint)*(ushort *)((int)local_44 + 0xe);" (assignment_expression "local_5c = (uint)*(ushort *)((int)local_44 + 0xe)" identifier = (binary_expression "(uint)*(ushort *)((int)local_44 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)((int)local_44 + 0xe)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 0xe)" ( (binary_expression "(int)local_44 + 0xe" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" if (parenthesized_expression "(local_5c < 0xff00)" ( (binary_expression "local_5c < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }" { (labeled_statement "LAB_0012dfbd:\n          uVar9 = local_5c;" statement_identifier : (expression_statement "uVar9 = local_5c;" (assignment_expression "uVar9 = local_5c" identifier = identifier) ;)) (if_statement "if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" if (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) (compound_statement "{\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }) (else_clause "else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" else (compound_statement "{\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" { (expression_statement "*param_9 = *param_9 + 1;" (assignment_expression "*param_9 = *param_9 + 1" (pointer_expression "*param_9" * identifier) = (binary_expression "*param_9 + 1" (pointer_expression "*param_9" * identifier) + number_literal)) ;) (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }" if (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c)" ( (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" ( (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) - (subscript_expression "param_2[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }" { (expression_statement "FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");" (call_expression "FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included")" identifier (argument_list "("../../gold/object.h",0x50b,"is_section_included")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""is_section_included"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" if (parenthesized_expression "(*(int *)(param_2[0xe] + local_5c * 4) == 0)" ( (binary_expression "*(int *)(param_2[0xe] + local_5c * 4) == 0" (pointer_expression "*(int *)(param_2[0xe] + local_5c * 4)" * (cast_expression "(int *)(param_2[0xe] + local_5c * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xe] + local_5c * 4)" ( (binary_expression "param_2[0xe] + local_5c * 4" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) + (binary_expression "local_5c * 4" identifier * number_literal)) )))) == number_literal) )) (compound_statement "{\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }" { (expression_statement "cVar4 = FUN_00122ff0(param_1,param_2,local_5c);" (assignment_expression "cVar4 = FUN_00122ff0(param_1,param_2,local_5c)" identifier = (call_expression "FUN_00122ff0(param_1,param_2,local_5c)" identifier (argument_list "(param_1,param_2,local_5c)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }" { (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n                bVar13 = false;\n              }" else (compound_statement "{\n                bVar13 = false;\n              }" { (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }))) }) (else_clause "else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" else (compound_statement "{\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" { (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) }))) }))) }) (else_clause "else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" else (compound_statement "{\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" { (if_statement "if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }" if (parenthesized_expression "(local_5c == 0xffff)" ( (binary_expression "local_5c == 0xffff" identifier == number_literal) )) (compound_statement "{\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }" { (expression_statement "iVar8 = param_2[0xc];" (assignment_expression "iVar8 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }" { (expression_statement "iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);" (assignment_expression "iVar8 = (**(code **)(*param_2 + 0x6c))(param_2)" identifier = (call_expression "(**(code **)(*param_2 + 0x6c))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x6c))" ( (pointer_expression "**(code **)(*param_2 + 0x6c)" * (pointer_expression "*(code **)(*param_2 + 0x6c)" * (cast_expression "(code **)(*param_2 + 0x6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x6c)" ( (binary_expression "*param_2 + 0x6c" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "param_2[0xc] = iVar8;" (assignment_expression "param_2[0xc] = iVar8" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);" (assignment_expression "local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5)" identifier = (call_expression "FUN_00091a00(iVar8,param_2,local_50 + param_5)" identifier (argument_list "(iVar8,param_2,local_50 + param_5)" ( identifier , identifier , (binary_expression "local_50 + param_5" identifier + identifier) )))) ;) (goto_statement "goto LAB_0012dfbd;" goto statement_identifier ;) })) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "*param_9 = *param_9 + 1;" (assignment_expression "*param_9 = *param_9 + 1" (pointer_expression "*param_9" * identifier) = (binary_expression "*param_9 + 1" (pointer_expression "*param_9" * identifier) + number_literal)) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) (expression_statement "pcVar5 = strchr(__s,0x40);" (assignment_expression "pcVar5 = strchr(__s,0x40)" identifier = (call_expression "strchr(__s,0x40)" identifier (argument_list "(__s,0x40)" ( identifier , number_literal )))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = FUN_000ee5f0(DAT_00302378);" (assignment_expression "bVar3 = FUN_000ee5f0(DAT_00302378)" identifier = (call_expression "FUN_000ee5f0(DAT_00302378)" identifier (argument_list "(DAT_00302378)" ( identifier )))) ;) (if_statement "if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" if (parenthesized_expression "(((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0)" ( (binary_expression "((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0" (parenthesized_expression "((bVar3 ^ 1) & pcVar5 != (char *)0x0)" ( (binary_expression "(bVar3 ^ 1) & pcVar5 != (char *)0x0" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) & (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) == number_literal) )) (compound_statement "{\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }" { (expression_statement "local_6c = strlen(__s);" (assignment_expression "local_6c = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0x154);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x154)" identifier = (pointer_expression "*(int *)(param_1 + 0x154)" * (cast_expression "(int *)(param_1 + 0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) ))))) ;) (expression_statement "local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;" (assignment_expression "local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0" identifier = (binary_expression "*(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0" (binary_expression "*(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) && (binary_expression "local_5c != 0" identifier != number_literal))) ;) (if_statement "if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }" if (parenthesized_expression "((bool)local_7d)" ( (cast_expression "(bool)local_7d" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }" { (expression_statement "local_2c = (uint *)((uint)local_2c & 0xffffff00);" (assignment_expression "local_2c = (uint *)((uint)local_2c & 0xffffff00)" identifier = (cast_expression "(uint *)((uint)local_2c & 0xffffff00)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_2c & 0xffffff00)" ( (binary_expression "(uint)local_2c & 0xffffff00" (cast_expression "(uint)local_2c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" identifier = (pointer_expression "&local_2c" & identifier)) ;) (expression_statement "local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);" (assignment_expression "local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38)" identifier = (call_expression "FUN_001197d0(iVar8,__s,&local_34,&local_38)" identifier (argument_list "(iVar8,__s,&local_34,&local_38)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_38" & identifier) )))) ;) (if_statement "if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" if (parenthesized_expression "((local_7d == '\0') || ((char)local_38 == '\0'))" ( (binary_expression "(local_7d == '\0') || ((char)local_38 == '\0')" (parenthesized_expression "(local_7d == '\0')" ( (binary_expression "local_7d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((char)local_38 == '\0')" ( (binary_expression "(char)local_38 == '\0'" (cast_expression "(char)local_38" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }" { (labeled_statement "LAB_0012e2b0:\n              bVar14 = false;" statement_identifier : (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;)) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" else (compound_statement "{\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" { (if_statement "if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }" if (parenthesized_expression "((undefined4 **)local_30 == (undefined4 **)0x0)" ( (binary_expression "(undefined4 **)local_30 == (undefined4 **)0x0" (cast_expression "(undefined4 **)local_30" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) == (cast_expression "(undefined4 **)0x0" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }" { (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0012e2b0;" goto statement_identifier ;) })) (expression_statement "local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);" (assignment_expression "local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40)" identifier = (call_expression "FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40)" identifier (argument_list "(param_1 + 0x40,local_34,local_30,1,&local_40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) , identifier , identifier , number_literal , (pointer_expression "&local_40" & identifier) )))) ;) (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "bVar14 = true;" (assignment_expression "bVar14 = true" identifier = true) ;) }))) (if_statement "if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }" if (parenthesized_expression "(local_34 != &local_2c)" ( (binary_expression "local_34 != &local_2c" identifier != (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n              FUN_001807a0(local_34);\n            }" { (expression_statement "FUN_001807a0(local_34);" (call_expression "FUN_001807a0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) }) (else_clause "else {\n            bVar14 = false;\n            local_74 = 0;\n          }" else (compound_statement "{\n            bVar14 = false;\n            local_74 = 0;\n          }" { (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" else (compound_statement "{\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" { (expression_statement "local_6c = (int)pcVar5 - (int)__s;" (assignment_expression "local_6c = (int)pcVar5 - (int)__s" identifier = (binary_expression "(int)pcVar5 - (int)__s" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar14 = pcVar5[1] == '@';" (assignment_expression "bVar14 = pcVar5[1] == '@'" identifier = (binary_expression "pcVar5[1] == '@'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) == (char_literal "'@'" ' character '))) ;) (if_statement "if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n            pcVar5 = pcVar5 + 2;\n          }" { (expression_statement "pcVar5 = pcVar5 + 2;" (assignment_expression "pcVar5 = pcVar5 + 2" identifier = (binary_expression "pcVar5 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n            pcVar5 = pcVar5 + 1;\n          }" else (compound_statement "{\n            pcVar5 = pcVar5 + 1;\n          }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }))) (expression_statement "local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);" (assignment_expression "local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40)" identifier = (call_expression "FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40)" identifier (argument_list "(param_1 + 0x40,pcVar5,1,&local_40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_40" & identifier) )))) ;) (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "local_68 = param_1 + 0x40;" (assignment_expression "local_68 = param_1 + 0x40" identifier = (binary_expression "param_1 + 0x40" identifier + number_literal)) ;) (expression_statement "local_70 = &local_38;" (assignment_expression "local_70 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "local_3c = &local_34;" (assignment_expression "local_3c = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "ppppuVar11 = &local_3c;" (assignment_expression "ppppuVar11 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (if_statement "if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }" { (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }" if (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" ( (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" * (cast_expression "(byte *)(param_2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb)" ( (binary_expression "param_2 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }" { (if_statement "if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }" { (if_statement "if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }" { (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "ppppuVar11 = (undefined4 ****)&local_44;" (assignment_expression "ppppuVar11 = (undefined4 ****)&local_44" identifier = (cast_expression "(undefined4 ****)&local_44" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_44" & identifier))) ;) (goto_statement "goto LAB_0012deae;" goto statement_identifier ;) })) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "local_34 = *param_3;" (assignment_expression "local_34 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (uint *)param_3[1];" (assignment_expression "local_30 = (uint *)param_3[1]" identifier = (cast_expression "(uint *)param_3[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "local_2c = (uint *)param_3[2];" (assignment_expression "local_2c = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_28 = param_3[3];" (assignment_expression "local_28 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0012e0e6;" goto statement_identifier ;) })) (expression_statement "ppppuVar11 = (undefined4 ****)&local_44;" (assignment_expression "ppppuVar11 = (undefined4 ****)&local_44" identifier = (cast_expression "(undefined4 ****)&local_44" ( (type_descriptor "undefined4 ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_44" & identifier))) ;) }) (else_clause "else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" else (compound_statement "{\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" { (expression_statement "local_34 = *param_3;" (assignment_expression "local_34 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_30 = (uint *)param_3[1];" (assignment_expression "local_30 = (uint *)param_3[1]" identifier = (cast_expression "(uint *)param_3[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "local_2c = (uint *)param_3[2];" (assignment_expression "local_2c = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "local_28 = param_3[3];" (assignment_expression "local_28 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (if_statement "if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" if (parenthesized_expression "(((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1))" ( (binary_expression "((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)" (parenthesized_expression "((uVar9 == 0) || (cVar4 == '\0'))" ( (binary_expression "(uVar9 == 0) || (cVar4 == '\0')" (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) || (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(param_2[0x2a] != 1)" ( (binary_expression "param_2[0x2a] != 1" (subscript_expression "param_2[0x2a]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }" { (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }" if (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" ( (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" * (cast_expression "(byte *)(param_2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb)" ( (binary_expression "param_2 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) (goto_statement "goto LAB_0012e0e6;" goto statement_identifier ;) })) }) (else_clause "else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" else (compound_statement "{\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" { (expression_statement "ppuVar1 = (undefined4 **)local_44[1];" (assignment_expression "ppuVar1 = (undefined4 **)local_44[1]" identifier = (cast_expression "(undefined4 **)local_44[1]" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_44[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);" (assignment_expression "iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9)" identifier = (call_expression "(**(code **)(*param_2 + 0x4c))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0x4c))" ( (pointer_expression "**(code **)(*param_2 + 0x4c)" * (pointer_expression "*(code **)(*param_2 + 0x4c)" * (cast_expression "(code **)(*param_2 + 0x4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x4c)" ( (binary_expression "*param_2 + 0x4c" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar9)" ( identifier , identifier )))) ;) (expression_statement "local_30 = (uint *)(iVar8 + (int)ppuVar1);" (assignment_expression "local_30 = (uint *)(iVar8 + (int)ppuVar1)" identifier = (cast_expression "(uint *)(iVar8 + (int)ppuVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + (int)ppuVar1)" ( (binary_expression "iVar8 + (int)ppuVar1" identifier + (cast_expression "(int)ppuVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }" if (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" ( (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" * (cast_expression "(byte *)(param_2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb)" ( (binary_expression "param_2 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) (labeled_statement "LAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);" statement_identifier : (expression_statement "bVar3 = *(byte *)((int)local_3c + 0xd);" (assignment_expression "bVar3 = *(byte *)((int)local_3c + 0xd)" identifier = (pointer_expression "*(byte *)((int)local_3c + 0xd)" * (cast_expression "(byte *)((int)local_3c + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + 0xd)" ( (binary_expression "(int)local_3c + 0xd" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }" if (parenthesized_expression "(((bVar3 & 3) == 0) || ((bVar3 & 3) == 3))" ( (binary_expression "((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)" (parenthesized_expression "((bVar3 & 3) == 0)" ( (binary_expression "(bVar3 & 3) == 0" (parenthesized_expression "(bVar3 & 3)" ( (binary_expression "bVar3 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((bVar3 & 3) == 3)" ( (binary_expression "(bVar3 & 3) == 3" (parenthesized_expression "(bVar3 & 3)" ( (binary_expression "bVar3 & 3" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }" { (expression_statement "local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);" (assignment_expression "local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28)" (field_expression "local_28._0_2_" identifier . field_identifier) = (call_expression "CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28)" identifier (argument_list "((bVar3 & 0xfc) + 2,(undefined1)local_28)" ( (binary_expression "(bVar3 & 0xfc) + 2" (parenthesized_expression "(bVar3 & 0xfc)" ( (binary_expression "bVar3 & 0xfc" identifier & number_literal) )) + number_literal) , (cast_expression "(undefined1)local_28" ( (type_descriptor "undefined1" type_identifier) ) identifier) )))) ;) })) (goto_statement "goto LAB_0012deae;" goto statement_identifier ;) })) }))) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);" statement_identifier : (expression_statement "uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);" (assignment_expression "uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70)" identifier = (call_expression "FUN_0011ff30(local_68,__s,local_6c,1,local_70)" identifier (argument_list "(local_68,__s,local_6c,1,local_70)" ( identifier , identifier , identifier , number_literal , identifier )))) ;)) (expression_statement "puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);" (assignment_expression "puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" identifier = (cast_expression "(undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" identifier (argument_list "(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }" if (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }" { (if_statement "if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }" if (parenthesized_expression "(local_7d != '\0')" ( (binary_expression "local_7d != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            FUN_001236a0(param_1,puVar7);\n          }" { (expression_statement "FUN_001236a0(param_1,puVar7);" (call_expression "FUN_001236a0(param_1,puVar7)" identifier (argument_list "(param_1,puVar7)" ( identifier , identifier ))) ;) })) (expression_statement "iVar8 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }" { (labeled_statement "LAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }" if (parenthesized_expression "(((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))))))" ( (binary_expression "((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))" (parenthesized_expression "((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))))))" ( (binary_expression "(*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))" (parenthesized_expression "(*(char *)(iVar8 + 0x18b1) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x18b1) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x18b1)" * (cast_expression "(char *)(iVar8 + 0x18b1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18b1)" ( (binary_expression "iVar8 + 0x18b1" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))" ( (parenthesized_expression "((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))))" ( (binary_expression "(((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))" (parenthesized_expression "(((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0))" ( (binary_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3))" ( (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)" (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)puVar7 + 0x29) & 3" (pointer_expression "*(byte *)((int)puVar7 + 0x29)" * (cast_expression "(byte *)((int)puVar7 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x29)" ( (binary_expression "(int)puVar7 + 0x29" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 3)" ( (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 3" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)puVar7 + 0x29) & 3" (pointer_expression "*(byte *)((int)puVar7 + 0x29)" * (cast_expression "(byte *)((int)puVar7 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x29)" ( (binary_expression "(int)puVar7 + 0x29" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x2b) & 0x10)" ( (binary_expression "*(byte *)((int)puVar7 + 0x2b) & 0x10" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" * (cast_expression "(byte *)((int)puVar7 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x2b)" ( (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))" ( (parenthesized_expression "((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))" ( (binary_expression "(*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)" (binary_expression "(*(byte *)((int)puVar7 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)puVar7 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar7 + 0x2a)" * (cast_expression "(byte *)((int)puVar7 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x2a)" ( (binary_expression "(int)puVar7 + 0x2a" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(puVar7[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar7[2] + 0x2c) & 1)" ( (binary_expression "*(byte *)(puVar7[2] + 0x2c) & 1" (pointer_expression "*(byte *)(puVar7[2] + 0x2c)" * (cast_expression "(byte *)(puVar7[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7[2] + 0x2c)" ( (binary_expression "puVar7[2] + 0x2c" (subscript_expression "puVar7[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))" ( (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))))" ( (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))" (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" * (cast_expression "(char *)(iVar8 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1a25)" ( (binary_expression "iVar8 + 0x1a25" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))" ( (parenthesized_expression "(*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))" ( (binary_expression "*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))" (binary_expression "*(char *)(iVar8 + 0x12b9) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x12b9)" * (cast_expression "(char *)(iVar8 + 0x12b9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x12b9)" ( (binary_expression "iVar8 + 0x12b9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))" ( (parenthesized_expression "(cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))" ( (comma_expression "cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')" (assignment_expression "cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45)" identifier = (call_expression "FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45)" identifier (argument_list "(iVar8 + 0x59a8,*puVar7,0,&local_45)" ( (binary_expression "iVar8 + 0x59a8" identifier + number_literal) , (pointer_expression "*puVar7" * identifier) , number_literal , (pointer_expression "&local_45" & identifier) )))) , (binary_expression "cVar4 != '\0' &&\n                (local_45 == '\0')" (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(local_45 == '\0')" ( (binary_expression "local_45 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) ))) )) ))) )) (compound_statement "{\n            FUN_00123a50(param_1,puVar7);\n          }" { (expression_statement "FUN_00123a50(param_1,puVar7);" (call_expression "FUN_00123a50(param_1,puVar7)" identifier (argument_list "(param_1,puVar7)" ( identifier , identifier ))) ;) })) (if_statement "if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }" { (expression_statement "*(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;" (assignment_expression "*(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" * (cast_expression "(byte *)((int)puVar7 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x2b)" ( (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)puVar7 + 0x2b) | 0x80" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" * (cast_expression "(byte *)((int)puVar7 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0x2b)" ( (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (expression_statement "*(undefined4 **)(*param_8 + local_50 * 4) = puVar7;" (assignment_expression "*(undefined4 **)(*param_8 + local_50 * 4) = puVar7" (pointer_expression "*(undefined4 **)(*param_8 + local_50 * 4)" * (cast_expression "(undefined4 **)(*param_8 + local_50 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_8 + local_50 * 4)" ( (binary_expression "*param_8 + local_50 * 4" (pointer_expression "*param_8" * identifier) + (binary_expression "local_50 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "param_3 = param_3 + 4;" (assignment_expression "param_3 = param_3 + 4" identifier = (binary_expression "param_3 + 4" identifier + number_literal)) ;) (if_statement "if (param_4 == local_50) {\n          return;\n        }" if (parenthesized_expression "(param_4 == local_50)" ( (binary_expression "param_4 == local_50" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "uVar6 = gettext("bad global symbol name offset %u at %zu");" (assignment_expression "uVar6 = gettext("bad global symbol name offset %u at %zu")" identifier = (call_expression "gettext("bad global symbol name offset %u at %zu")" identifier (argument_list "("bad global symbol name offset %u at %zu")" ( (string_literal ""bad global symbol name offset %u at %zu"" " string_content ") )))) ;) (expression_statement "FUN_00091980(param_2,uVar6,ppuVar1,local_50);" (call_expression "FUN_00091980(param_2,uVar6,ppuVar1,local_50)" identifier (argument_list "(param_2,uVar6,ppuVar1,local_50)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (expression_statement "param_3 = param_3 + 4;" (assignment_expression "param_3 = param_3 + 4" identifier = (binary_expression "param_3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != local_50)" ( (binary_expression "param_4 != local_50" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) & (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) && (binary_expression IDENT != LIT))) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character '))) ;) (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 = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (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))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (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 *))))) ) (pointer_expression & IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) ))) )) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , LIT , (pointer_expression & IDENT) )))) , (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )))) )) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)\n\n{\n  undefined4 **ppuVar1;\n  char cVar2;\n  byte bVar3;\n  char cVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  char *__s;\n  byte *pbVar10;\n  undefined4 ****ppppuVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char local_7d;\n  undefined4 local_74;\n  undefined4 *local_70;\n  size_t local_6c;\n  int local_68;\n  uint local_5c;\n  int local_50;\n  char local_45;\n  uint **local_44;\n  undefined4 local_40;\n  undefined4 ***local_3c;\n  undefined4 local_38;\n  uint **local_34;\n  uint *local_30;\n  uint *local_2c;\n  undefined4 local_28;\n  \n  iVar8 = DAT_00302378;\n  bVar15 = 0;\n  *param_9 = 0;\n  if (*(int *)(iVar8 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }\n  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  if (param_2[7] == 0) {\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar2 = FUN_0005cf90(param_2[7]);\n  local_50 = 0;\n  if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0012dd00(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)" (identifier "FUN_0012dd00") (parameter_list "(int param_1,int *param_2,undefined4 ***param_3,int param_4,int param_5,int param_6\n                 ,undefined4 **param_7,int *param_8,int *param_9)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 ***param_3" (type_identifier "undefined4") (pointer_declarator "***param_3" (* "*") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 **param_7" (type_identifier "undefined4") (pointer_declarator "**param_7" (* "*") (pointer_declarator "*param_7" (* "*") (identifier "param_7")))) (, ",") (parameter_declaration "int *param_8" (primitive_type "int") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "int *param_9" (primitive_type "int") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) () ")"))) (compound_statement "{\n  undefined4 **ppuVar1;\n  char cVar2;\n  byte bVar3;\n  char cVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  char *__s;\n  byte *pbVar10;\n  undefined4 ****ppppuVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  char local_7d;\n  undefined4 local_74;\n  undefined4 *local_70;\n  size_t local_6c;\n  int local_68;\n  uint local_5c;\n  int local_50;\n  char local_45;\n  uint **local_44;\n  undefined4 local_40;\n  undefined4 ***local_3c;\n  undefined4 local_38;\n  uint **local_34;\n  uint *local_30;\n  uint *local_2c;\n  undefined4 local_28;\n  \n  iVar8 = DAT_00302378;\n  bVar15 = 0;\n  *param_9 = 0;\n  if (*(int *)(iVar8 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }\n  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }\n  if (param_2[7] == 0) {\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }\n  cVar2 = FUN_0005cf90(param_2[7]);\n  local_50 = 0;\n  if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }\n  return;\n}" ({ "{") (declaration "undefined4 **ppuVar1;" (type_identifier "undefined4") (pointer_declarator "**ppuVar1" (* "*") (pointer_declarator "*ppuVar1" (* "*") (identifier "ppuVar1"))) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "undefined4 ****ppppuVar11;" (type_identifier "undefined4") (pointer_declarator "****ppppuVar11" (* "*") (pointer_declarator "***ppppuVar11" (* "*") (pointer_declarator "**ppppuVar11" (* "*") (pointer_declarator "*ppppuVar11" (* "*") (identifier "ppppuVar11"))))) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "char local_7d;" (primitive_type "char") (identifier "local_7d") (; ";")) (declaration "undefined4 local_74;" (type_identifier "undefined4") (identifier "local_74") (; ";")) (declaration "undefined4 *local_70;" (type_identifier "undefined4") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "size_t local_6c;" (primitive_type "size_t") (identifier "local_6c") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "char local_45;" (primitive_type "char") (identifier "local_45") (; ";")) (declaration "uint **local_44;" (type_identifier "uint") (pointer_declarator "**local_44" (* "*") (pointer_declarator "*local_44" (* "*") (identifier "local_44"))) (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 ***local_3c;" (type_identifier "undefined4") (pointer_declarator "***local_3c" (* "*") (pointer_declarator "**local_3c" (* "*") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")))) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "uint **local_34;" (type_identifier "uint") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34"))) (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "uint *local_2c;" (type_identifier "uint") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (expression_statement "iVar8 = DAT_00302378;" (assignment_expression "iVar8 = DAT_00302378" (identifier "iVar8") (= "=") (identifier "DAT_00302378")) (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar8 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar8 + 0xc) == 0" (pointer_expression "*(int *)(iVar8 + 0xc)" (* "*") (cast_expression "(int *)(iVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);\n  }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/parameters.h",0x69,"target",param_9)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (identifier "param_9") () ")"))) (; ";")) (} "}"))) (if_statement "if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }" (if "if") (parenthesized_expression "(**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20)" (( "(") (binary_expression "**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20" (pointer_expression "**(int **)(*(int *)(iVar8 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(iVar8 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(iVar8 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(iVar8 + 0xc) + 4" (pointer_expression "*(int *)(iVar8 + 0xc)" (* "*") (cast_expression "(int *)(iVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (!= "!=") (number_literal "0x20")) () ")")) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");\n  }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");" (call_expression "FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj")" (identifier "FUN_0005f0b0") (argument_list "("../../gold/symtab.cc",0x4a6,"add_from_relobj")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x4a6") (, ",") (string_literal ""add_from_relobj"" (" """) (string_content "add_from_relobj") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2[7] == 0) {\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }" (if "if") (parenthesized_expression "(param_2[7] == 0)" (( "(") (binary_expression "param_2[7] == 0" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");\n  }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");" (call_expression "FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file")" (identifier "FUN_0005f0b0") (argument_list "("../../gold/object.h",0x1ea,"input_file")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x1ea") (, ",") (string_literal ""input_file"" (" """) (string_content "input_file") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "cVar2 = FUN_0005cf90(param_2[7]);" (assignment_expression "cVar2 = FUN_0005cf90(param_2[7])" (identifier "cVar2") (= "=") (call_expression "FUN_0005cf90(param_2[7])" (identifier "FUN_0005cf90") (argument_list "(param_2[7])" (( "(") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) () ")")))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_4 != 0) {\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);\n  }" ({ "{") (do_statement "do {\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    } while (param_4 != local_50);" (do "do") (compound_statement "{\n      while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }\n      uVar6 = gettext("bad global symbol name offset %u at %zu");\n      FUN_00091980(param_2,uVar6,ppuVar1,local_50);\n      local_50 = local_50 + 1;\n      param_3 = param_3 + 4;\n    }" ({ "{") (while_statement "while( true ) {\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        *(undefined4 *)(*param_8 + local_50 * 4) = 0;\n        local_44 = (uint **)param_3;\n        ppuVar1 = *param_3;\n        if (param_7 <= ppuVar1) break;\n        __s = (char *)((int)ppuVar1 + param_6);\n        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;\n        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }\n        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);\n        if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }\n        pcVar5 = strchr(__s,0x40);\n        local_40 = 0;\n        bVar3 = FUN_000ee5f0(DAT_00302378);\n        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }\n        local_68 = param_1 + 0x40;\n        local_70 = &local_38;\n        local_3c = &local_34;\n        ppppuVar11 = &local_3c;\n        if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }\nLAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);\n        puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);\n        if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }\n        local_50 = local_50 + 1;\n        param_3 = param_3 + 4;\n        if (param_4 == local_50) {\n          return;\n        }\n      }" ({ "{") (expression_statement "*(undefined4 *)(*param_8 + local_50 * 4) = 0;" (assignment_expression "*(undefined4 *)(*param_8 + local_50 * 4) = 0" (pointer_expression "*(undefined4 *)(*param_8 + local_50 * 4)" (* "*") (cast_expression "(undefined4 *)(*param_8 + local_50 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_8 + local_50 * 4)" (( "(") (binary_expression "*param_8 + local_50 * 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (+ "+") (binary_expression "local_50 * 4" (identifier "local_50") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = (uint **)param_3;" (assignment_expression "local_44 = (uint **)param_3" (identifier "local_44") (= "=") (cast_expression "(uint **)param_3" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_3"))) (; ";")) (expression_statement "ppuVar1 = *param_3;" (assignment_expression "ppuVar1 = *param_3" (identifier "ppuVar1") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (param_7 <= ppuVar1) break;" (if "if") (parenthesized_expression "(param_7 <= ppuVar1)" (( "(") (binary_expression "param_7 <= ppuVar1" (identifier "param_7") (<= "<=") (identifier "ppuVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "__s = (char *)((int)ppuVar1 + param_6);" (assignment_expression "__s = (char *)((int)ppuVar1 + param_6)" (identifier "__s") (= "=") (cast_expression "(char *)((int)ppuVar1 + param_6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar1 + param_6)" (( "(") (binary_expression "(int)ppuVar1 + param_6" (cast_expression "(int)ppuVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar1")) (+ "+") (identifier "param_6")) () ")")))) (; ";")) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;" (if "if") (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0012e426;" (goto "goto") (statement_identifier "LAB_0012e426") (; ";"))) (if_statement "if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')) {\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }" (if "if") (parenthesized_expression "(((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_'))" (( "(") (binary_expression "((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&\n           (__s[1] == '_')" (parenthesized_expression "((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_'))" (( "(") (binary_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')" (parenthesized_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" (* "*") (cast_expression "(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x318d)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*__s == '_')" (( "(") (binary_expression "*__s == '_'" (pointer_expression "*__s" (* "*") (identifier "__s")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(__s[1] == '_')" (( "(") (binary_expression "__s[1] == '_'" (subscript_expression "__s[1]" (identifier "__s") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          iVar8 = 0xf;\n          bVar13 = (byte)__s[2] < 0x5f;\n          bVar14 = __s[2] == 0x5f;\n          pbVar10 = (byte *)(__s + bVar14);\n          pbVar12 = (byte *)"__gnu_lto_slim";\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }\n        }" ({ "{") (expression_statement "iVar8 = 0xf;" (assignment_expression "iVar8 = 0xf" (identifier "iVar8") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "bVar13 = (byte)__s[2] < 0x5f;" (assignment_expression "bVar13 = (byte)__s[2] < 0x5f" (identifier "bVar13") (= "=") (binary_expression "(byte)__s[2] < 0x5f" (cast_expression "(byte)__s[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "__s[2]" (identifier "__s") ([ "[") (number_literal "2") (] "]"))) (< "<") (number_literal "0x5f"))) (; ";")) (expression_statement "bVar14 = __s[2] == 0x5f;" (assignment_expression "bVar14 = __s[2] == 0x5f" (identifier "bVar14") (= "=") (binary_expression "__s[2] == 0x5f" (subscript_expression "__s[2]" (identifier "__s") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x5f"))) (; ";")) (expression_statement "pbVar10 = (byte *)(__s + bVar14);" (assignment_expression "pbVar10 = (byte *)(__s + bVar14)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(__s + bVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__s + bVar14)" (( "(") (binary_expression "__s + bVar14" (identifier "__s") (+ "+") (identifier "bVar14")) () ")")))) (; ";")) (expression_statement "pbVar12 = (byte *)"__gnu_lto_slim";" (assignment_expression "pbVar12 = (byte *)"__gnu_lto_slim"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"__gnu_lto_slim"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__gnu_lto_slim"" (" """) (string_content "__gnu_lto_slim") (" """)))) (; ";")) (do_statement "do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          } while (bVar14);" (do "do") (compound_statement "{\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar13 = *pbVar10 < *pbVar12;\n            bVar14 = *pbVar10 == *pbVar12;\n            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar10 < *pbVar12;" (assignment_expression "bVar13 = *pbVar10 < *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar10 < *pbVar12" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar14 = *pbVar10 == *pbVar12;" (assignment_expression "bVar14 = *pbVar10 == *pbVar12" (identifier "bVar14") (= "=") (binary_expression "*pbVar10 == *pbVar12" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar15 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (; ";")) (if_statement "if ((!bVar13 && !bVar14) == bVar13) {\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }" (if "if") (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" (( "(") (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" (( "(") (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar14" (! "!") (identifier "bVar14"))) () ")")) (== "==") (identifier "bVar13")) () ")")) (compound_statement "{\n            iVar8 = param_2[1];\n            uVar6 = gettext("%s: plugin needed to handle lto object");\n            FUN_0005ad60(uVar6,iVar8);\n          }" ({ "{") (expression_statement "iVar8 = param_2[1];" (assignment_expression "iVar8 = param_2[1]" (identifier "iVar8") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = gettext("%s: plugin needed to handle lto object");" (assignment_expression "uVar6 = gettext("%s: plugin needed to handle lto object")" (identifier "uVar6") (= "=") (call_expression "gettext("%s: plugin needed to handle lto object")" (identifier "gettext") (argument_list "("%s: plugin needed to handle lto object")" (( "(") (string_literal ""%s: plugin needed to handle lto object"" (" """) (string_content "%s: plugin needed to handle lto object") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad60(uVar6,iVar8);" (call_expression "FUN_0005ad60(uVar6,iVar8)" (identifier "FUN_0005ad60") (argument_list "(uVar6,iVar8)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar8") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_5c = (uint)*(ushort *)((int)local_44 + 0xe);" (assignment_expression "local_5c = (uint)*(ushort *)((int)local_44 + 0xe)" (identifier "local_5c") (= "=") (binary_expression "(uint)*(ushort *)((int)local_44 + 0xe)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)((int)local_44 + 0xe)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 + 0xe)" (( "(") (binary_expression "(int)local_44 + 0xe" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (if_statement "if (local_5c < 0xff00) {\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }\n        else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" (if "if") (parenthesized_expression "(local_5c < 0xff00)" (( "(") (binary_expression "local_5c < 0xff00" (identifier "local_5c") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_0012dfbd:\n          uVar9 = local_5c;\n          if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }\n        }" ({ "{") (labeled_statement "LAB_0012dfbd:\n          uVar9 = local_5c;" (statement_identifier "LAB_0012dfbd") (: ":") (expression_statement "uVar9 = local_5c;" (assignment_expression "uVar9 = local_5c" (identifier "uVar9") (= "=") (identifier "local_5c")) (; ";"))) (if_statement "if (local_5c == 0) {\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }\n          else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" (if "if") (parenthesized_expression "(local_5c == 0)" (( "(") (binary_expression "local_5c == 0" (identifier "local_5c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_5c = 0;\n            cVar4 = '\x01';\n            bVar13 = false;\n          }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" (identifier "cVar4") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" (else "else") (compound_statement "{\n            *param_9 = *param_9 + 1;\n            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }\n            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }\n          }" ({ "{") (expression_statement "*param_9 = *param_9 + 1;" (assignment_expression "*param_9 = *param_9 + 1" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (binary_expression "*param_9 + 1" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }" (if "if") (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c)" (( "(") (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" (( "(") (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "local_5c")) () ")")) (compound_statement "{\n                    \n              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");\n            }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");" (call_expression "FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included")" (identifier "FUN_0005f0b0") (argument_list "("../../gold/object.h",0x50b,"is_section_included")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x50b") (, ",") (string_literal ""is_section_included"" (" """) (string_content "is_section_included") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }\n            else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" (if "if") (parenthesized_expression "(*(int *)(param_2[0xe] + local_5c * 4) == 0)" (( "(") (binary_expression "*(int *)(param_2[0xe] + local_5c * 4) == 0" (pointer_expression "*(int *)(param_2[0xe] + local_5c * 4)" (* "*") (cast_expression "(int *)(param_2[0xe] + local_5c * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0xe] + local_5c * 4)" (( "(") (binary_expression "param_2[0xe] + local_5c * 4" (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "local_5c * 4" (identifier "local_5c") (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);\n              if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }\n            }" ({ "{") (expression_statement "cVar4 = FUN_00122ff0(param_1,param_2,local_5c);" (assignment_expression "cVar4 = FUN_00122ff0(param_1,param_2,local_5c)" (identifier "cVar4") (= "=") (call_expression "FUN_00122ff0(param_1,param_2,local_5c)" (identifier "FUN_00122ff0") (argument_list "(param_1,param_2,local_5c)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "local_5c") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') {\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }\n              else {\n                bVar13 = false;\n              }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                cVar4 = '\x01';\n                bVar13 = true;\n                local_5c = 0;\n              }" ({ "{") (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" (identifier "cVar4") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" (identifier "bVar13") (= "=") (true "true")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                bVar13 = false;\n              }" (else "else") (compound_statement "{\n                bVar13 = false;\n              }" ({ "{") (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" (else "else") (compound_statement "{\n              cVar4 = '\x01';\n              bVar13 = false;\n            }" ({ "{") (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" (identifier "cVar4") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" (else "else") (compound_statement "{\n          if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }\n          cVar4 = '\0';\n          bVar13 = false;\n          *param_9 = *param_9 + 1;\n          uVar9 = 0;\n        }" ({ "{") (if_statement "if (local_5c == 0xffff) {\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }" (if "if") (parenthesized_expression "(local_5c == 0xffff)" (( "(") (binary_expression "local_5c == 0xffff" (identifier "local_5c") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n            iVar8 = param_2[0xc];\n            if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }\n            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);\n            goto LAB_0012dfbd;\n          }" ({ "{") (expression_statement "iVar8 = param_2[0xc];" (assignment_expression "iVar8 = param_2[0xc]" (identifier "iVar8") (= "=") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if (iVar8 == 0) {\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);\n              param_2[0xc] = iVar8;\n            }" ({ "{") (expression_statement "iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);" (assignment_expression "iVar8 = (**(code **)(*param_2 + 0x6c))(param_2)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*param_2 + 0x6c))(param_2)" (parenthesized_expression "(**(code **)(*param_2 + 0x6c))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x6c)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x6c)" (* "*") (cast_expression "(code **)(*param_2 + 0x6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x6c)" (( "(") (binary_expression "*param_2 + 0x6c" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x6c")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_2[0xc] = iVar8;" (assignment_expression "param_2[0xc] = iVar8" (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (expression_statement "local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);" (assignment_expression "local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5)" (identifier "local_5c") (= "=") (call_expression "FUN_00091a00(iVar8,param_2,local_50 + param_5)" (identifier "FUN_00091a00") (argument_list "(iVar8,param_2,local_50 + param_5)" (( "(") (identifier "iVar8") (, ",") (identifier "param_2") (, ",") (binary_expression "local_50 + param_5" (identifier "local_50") (+ "+") (identifier "param_5")) () ")")))) (; ";")) (goto_statement "goto LAB_0012dfbd;" (goto "goto") (statement_identifier "LAB_0012dfbd") (; ";")) (} "}"))) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "*param_9 = *param_9 + 1;" (assignment_expression "*param_9 = *param_9 + 1" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (binary_expression "*param_9 + 1" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "pcVar5 = strchr(__s,0x40);" (assignment_expression "pcVar5 = strchr(__s,0x40)" (identifier "pcVar5") (= "=") (call_expression "strchr(__s,0x40)" (identifier "strchr") (argument_list "(__s,0x40)" (( "(") (identifier "__s") (, ",") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = FUN_000ee5f0(DAT_00302378);" (assignment_expression "bVar3 = FUN_000ee5f0(DAT_00302378)" (identifier "bVar3") (= "=") (call_expression "FUN_000ee5f0(DAT_00302378)" (identifier "FUN_000ee5f0") (argument_list "(DAT_00302378)" (( "(") (identifier "DAT_00302378") () ")")))) (; ";")) (if_statement "if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }\n        else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" (if "if") (parenthesized_expression "(((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0)" (( "(") (binary_expression "((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0" (parenthesized_expression "((bVar3 ^ 1) & pcVar5 != (char *)0x0)" (( "(") (binary_expression "(bVar3 ^ 1) & pcVar5 != (char *)0x0" (parenthesized_expression "(bVar3 ^ 1)" (( "(") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1")) () ")")) (& "&") (binary_expression "pcVar5 != (char *)0x0" (identifier "pcVar5") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_6c = strlen(__s);\n          iVar8 = *(int *)(param_1 + 0x154);\n          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;\n          if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }\n        }" ({ "{") (expression_statement "local_6c = strlen(__s);" (assignment_expression "local_6c = strlen(__s)" (identifier "local_6c") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(param_1 + 0x154);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x154)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0x154)" (* "*") (cast_expression "(int *)(param_1 + 0x154)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x154)" (( "(") (binary_expression "param_1 + 0x154" (identifier "param_1") (+ "+") (number_literal "0x154")) () ")"))))) (; ";")) (expression_statement "local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;" (assignment_expression "local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0" (identifier "local_7d") (= "=") (binary_expression "*(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0" (binary_expression "*(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c)" (pointer_expression "*(int *)(iVar8 + 0x18)" (* "*") (cast_expression "(int *)(iVar8 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) (&& "&&") (binary_expression "local_5c != 0" (identifier "local_5c") (!= "!=") (number_literal "0")))) (; ";")) (if_statement "if ((bool)local_7d) {\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }\n          else {\n            bVar14 = false;\n            local_74 = 0;\n          }" (if "if") (parenthesized_expression "((bool)local_7d)" (( "(") (cast_expression "(bool)local_7d" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "local_7d")) () ")")) (compound_statement "{\n            local_2c = (uint *)((uint)local_2c & 0xffffff00);\n            local_30 = (uint *)0x0;\n            local_34 = &local_2c;\n                    \n            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);\n            if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }\n            if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }\n          }" ({ "{") (expression_statement "local_2c = (uint *)((uint)local_2c & 0xffffff00);" (assignment_expression "local_2c = (uint *)((uint)local_2c & 0xffffff00)" (identifier "local_2c") (= "=") (cast_expression "(uint *)((uint)local_2c & 0xffffff00)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)local_2c & 0xffffff00)" (( "(") (binary_expression "(uint)local_2c & 0xffffff00" (cast_expression "(uint)local_2c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_2c")) (& "&") (number_literal "0xffffff00")) () ")")))) (; ";")) (expression_statement "local_30 = (uint *)0x0;" (assignment_expression "local_30 = (uint *)0x0" (identifier "local_30") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_34 = &local_2c;" (assignment_expression "local_34 = &local_2c" (identifier "local_34") (= "=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) (; ";")) (expression_statement "local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);" (assignment_expression "local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38)" (identifier "local_7d") (= "=") (call_expression "FUN_001197d0(iVar8,__s,&local_34,&local_38)" (identifier "FUN_001197d0") (argument_list "(iVar8,__s,&local_34,&local_38)" (( "(") (identifier "iVar8") (, ",") (identifier "__s") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (if_statement "if ((local_7d == '\0') || ((char)local_38 == '\0')) {\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }\n            else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" (if "if") (parenthesized_expression "((local_7d == '\0') || ((char)local_38 == '\0'))" (( "(") (binary_expression "(local_7d == '\0') || ((char)local_38 == '\0')" (parenthesized_expression "(local_7d == '\0')" (( "(") (binary_expression "local_7d == '\0'" (identifier "local_7d") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((char)local_38 == '\0')" (( "(") (binary_expression "(char)local_38 == '\0'" (cast_expression "(char)local_38" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_38")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_0012e2b0:\n              bVar14 = false;\n              local_74 = 0;\n            }" ({ "{") (labeled_statement "LAB_0012e2b0:\n              bVar14 = false;" (statement_identifier "LAB_0012e2b0") (: ":") (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";"))) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" (else "else") (compound_statement "{\n              if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }\n                    \n              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);\n              local_7d = '\0';\n              bVar14 = true;\n            }" ({ "{") (if_statement "if ((undefined4 **)local_30 == (undefined4 **)0x0) {\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }" (if "if") (parenthesized_expression "((undefined4 **)local_30 == (undefined4 **)0x0)" (( "(") (binary_expression "(undefined4 **)local_30 == (undefined4 **)0x0" (cast_expression "(undefined4 **)local_30" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_30")) (== "==") (cast_expression "(undefined4 **)0x0" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                local_7d = '\0';\n                goto LAB_0012e2b0;\n              }" ({ "{") (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" (identifier "local_7d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto LAB_0012e2b0;" (goto "goto") (statement_identifier "LAB_0012e2b0") (; ";")) (} "}"))) (expression_statement "local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);" (assignment_expression "local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40)" (identifier "local_74") (= "=") (call_expression "FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40)" (identifier "FUN_0011ff30") (argument_list "(param_1 + 0x40,local_34,local_30,1,&local_40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) (, ",") (identifier "local_34") (, ",") (identifier "local_30") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")")))) (; ";")) (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" (identifier "local_7d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "bVar14 = true;" (assignment_expression "bVar14 = true" (identifier "bVar14") (= "=") (true "true")) (; ";")) (} "}")))) (if_statement "if (local_34 != &local_2c) {\n              FUN_001807a0(local_34);\n            }" (if "if") (parenthesized_expression "(local_34 != &local_2c)" (( "(") (binary_expression "local_34 != &local_2c" (identifier "local_34") (!= "!=") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) () ")")) (compound_statement "{\n              FUN_001807a0(local_34);\n            }" ({ "{") (expression_statement "FUN_001807a0(local_34);" (call_expression "FUN_001807a0(local_34)" (identifier "FUN_001807a0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            bVar14 = false;\n            local_74 = 0;\n          }" (else "else") (compound_statement "{\n            bVar14 = false;\n            local_74 = 0;\n          }" ({ "{") (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" (else "else") (compound_statement "{\n          local_6c = (int)pcVar5 - (int)__s;\n          bVar14 = pcVar5[1] == '@';\n          if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }\n          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);\n          local_7d = '\0';\n        }" ({ "{") (expression_statement "local_6c = (int)pcVar5 - (int)__s;" (assignment_expression "local_6c = (int)pcVar5 - (int)__s" (identifier "local_6c") (= "=") (binary_expression "(int)pcVar5 - (int)__s" (cast_expression "(int)pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar5")) (- "-") (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s")))) (; ";")) (expression_statement "bVar14 = pcVar5[1] == '@';" (assignment_expression "bVar14 = pcVar5[1] == '@'" (identifier "bVar14") (= "=") (binary_expression "pcVar5[1] == '@'" (subscript_expression "pcVar5[1]" (identifier "pcVar5") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'@'" (' "'") (character "@") (' "'")))) (; ";")) (if_statement "if (bVar14) {\n            pcVar5 = pcVar5 + 2;\n          }\n          else {\n            pcVar5 = pcVar5 + 1;\n          }" (if "if") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (compound_statement "{\n            pcVar5 = pcVar5 + 2;\n          }" ({ "{") (expression_statement "pcVar5 = pcVar5 + 2;" (assignment_expression "pcVar5 = pcVar5 + 2" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 2" (identifier "pcVar5") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n            pcVar5 = pcVar5 + 1;\n          }" (else "else") (compound_statement "{\n            pcVar5 = pcVar5 + 1;\n          }" ({ "{") (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);" (assignment_expression "local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40)" (identifier "local_74") (= "=") (call_expression "FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40)" (identifier "FUN_001200e0") (argument_list "(param_1 + 0x40,pcVar5,1,&local_40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) (, ",") (identifier "pcVar5") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")")))) (; ";")) (expression_statement "local_7d = '\0';" (assignment_expression "local_7d = '\0'" (identifier "local_7d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (expression_statement "local_68 = param_1 + 0x40;" (assignment_expression "local_68 = param_1 + 0x40" (identifier "local_68") (= "=") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "local_70 = &local_38;" (assignment_expression "local_70 = &local_38" (identifier "local_70") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (expression_statement "local_3c = &local_34;" (assignment_expression "local_3c = &local_34" (identifier "local_3c") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "ppppuVar11 = &local_3c;" (assignment_expression "ppppuVar11 = &local_3c" (identifier "ppppuVar11") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (if_statement "if (cVar2 == '\0') {\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }\n        else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }\n          ppppuVar11 = (undefined4 ****)&local_44;\n        }" ({ "{") (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" (( "(") (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" (* "*") (cast_expression "(byte *)(param_2 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb)" (( "(") (binary_expression "param_2 + 0xb" (identifier "param_2") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }\n            local_34 = *param_3;\n            local_30 = (uint *)param_3[1];\n            local_2c = (uint *)param_3[2];\n            local_28 = param_3[3];\n            goto LAB_0012e0e6;\n          }" ({ "{") (if_statement "if (uVar9 == 0) {\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }\n              cVar4 = '\0';\n            }" ({ "{") (if_statement "if (cVar4 != '\0') {\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                cVar4 = '\x01';\n                ppppuVar11 = (undefined4 ****)&local_44;\n                goto LAB_0012deae;\n              }" ({ "{") (expression_statement "cVar4 = '\x01';" (assignment_expression "cVar4 = '\x01'" (identifier "cVar4") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "ppppuVar11 = (undefined4 ****)&local_44;" (assignment_expression "ppppuVar11 = (undefined4 ****)&local_44" (identifier "ppppuVar11") (= "=") (cast_expression "(undefined4 ****)&local_44" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_44" (& "&") (identifier "local_44")))) (; ";")) (goto_statement "goto LAB_0012deae;" (goto "goto") (statement_identifier "LAB_0012deae") (; ";")) (} "}"))) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "local_34 = *param_3;" (assignment_expression "local_34 = *param_3" (identifier "local_34") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_30 = (uint *)param_3[1];" (assignment_expression "local_30 = (uint *)param_3[1]" (identifier "local_30") (= "=") (cast_expression "(uint *)param_3[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_2c = (uint *)param_3[2];" (assignment_expression "local_2c = (uint *)param_3[2]" (identifier "local_2c") (= "=") (cast_expression "(uint *)param_3[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_28 = param_3[3];" (assignment_expression "local_28 = param_3[3]" (identifier "local_28") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (goto_statement "goto LAB_0012e0e6;" (goto "goto") (statement_identifier "LAB_0012e0e6") (; ";")) (} "}"))) (expression_statement "ppppuVar11 = (undefined4 ****)&local_44;" (assignment_expression "ppppuVar11 = (undefined4 ****)&local_44" (identifier "ppppuVar11") (= "=") (cast_expression "(undefined4 ****)&local_44" (( "(") (type_descriptor "undefined4 ****" (type_identifier "undefined4") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_44" (& "&") (identifier "local_44")))) (; ";")) (} "}")) (else_clause "else {\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" (else "else") (compound_statement "{\n          local_34 = *param_3;\n          local_30 = (uint *)param_3[1];\n          local_2c = (uint *)param_3[2];\n          local_28 = param_3[3];\n          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }\n          cVar4 = '\0';\n          local_5c = 0xfff1;\n        }" ({ "{") (expression_statement "local_34 = *param_3;" (assignment_expression "local_34 = *param_3" (identifier "local_34") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_30 = (uint *)param_3[1];" (assignment_expression "local_30 = (uint *)param_3[1]" (identifier "local_30") (= "=") (cast_expression "(uint *)param_3[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_2c = (uint *)param_3[2];" (assignment_expression "local_2c = (uint *)param_3[2]" (identifier "local_2c") (= "=") (cast_expression "(uint *)param_3[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_28 = param_3[3];" (assignment_expression "local_28 = param_3[3]" (identifier "local_28") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }\n          else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" (if "if") (parenthesized_expression "(((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1))" (( "(") (binary_expression "((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)" (parenthesized_expression "((uVar9 == 0) || (cVar4 == '\0'))" (( "(") (binary_expression "(uVar9 == 0) || (cVar4 == '\0')" (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(param_2[0x2a] != 1)" (( "(") (binary_expression "param_2[0x2a] != 1" (subscript_expression "param_2[0x2a]" (identifier "param_2") ([ "[") (number_literal "0x2a") (] "]")) (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }\n          }" ({ "{") (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" (( "(") (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" (* "*") (cast_expression "(byte *)(param_2 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb)" (( "(") (binary_expression "param_2 + 0xb" (identifier "param_2") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              cVar4 = '\0';\n              local_5c = 0xfff1;\n              goto LAB_0012e0e6;\n            }" ({ "{") (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" (identifier "local_5c") (= "=") (number_literal "0xfff1")) (; ";")) (goto_statement "goto LAB_0012e0e6;" (goto "goto") (statement_identifier "LAB_0012e0e6") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" (else "else") (compound_statement "{\n            ppuVar1 = (undefined4 **)local_44[1];\n            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);\n            local_30 = (uint *)(iVar8 + (int)ppuVar1);\n            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }\n          }" ({ "{") (expression_statement "ppuVar1 = (undefined4 **)local_44[1];" (assignment_expression "ppuVar1 = (undefined4 **)local_44[1]" (identifier "ppuVar1") (= "=") (cast_expression "(undefined4 **)local_44[1]" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);" (assignment_expression "iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*param_2 + 0x4c))(param_2,uVar9)" (parenthesized_expression "(**(code **)(*param_2 + 0x4c))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x4c)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x4c)" (* "*") (cast_expression "(code **)(*param_2 + 0x4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x4c)" (( "(") (binary_expression "*param_2 + 0x4c" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x4c")) () ")"))))) () ")")) (argument_list "(param_2,uVar9)" (( "(") (identifier "param_2") (, ",") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "local_30 = (uint *)(iVar8 + (int)ppuVar1);" (assignment_expression "local_30 = (uint *)(iVar8 + (int)ppuVar1)" (identifier "local_30") (= "=") (cast_expression "(uint *)(iVar8 + (int)ppuVar1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + (int)ppuVar1)" (( "(") (binary_expression "iVar8 + (int)ppuVar1" (identifier "iVar8") (+ "+") (cast_expression "(int)ppuVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar1"))) () ")")))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0xb) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0xb) & 0x10) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0xb) & 0x10)" (( "(") (binary_expression "*(byte *)(param_2 + 0xb) & 0x10" (pointer_expression "*(byte *)(param_2 + 0xb)" (* "*") (cast_expression "(byte *)(param_2 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb)" (( "(") (binary_expression "param_2 + 0xb" (identifier "param_2") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              cVar4 = '\0';\n              local_5c = 0xfff1;\nLAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);\n              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }\n              goto LAB_0012deae;\n            }" ({ "{") (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" (identifier "local_5c") (= "=") (number_literal "0xfff1")) (; ";")) (labeled_statement "LAB_0012e0e6:\n              bVar3 = *(byte *)((int)local_3c + 0xd);" (statement_identifier "LAB_0012e0e6") (: ":") (expression_statement "bVar3 = *(byte *)((int)local_3c + 0xd);" (assignment_expression "bVar3 = *(byte *)((int)local_3c + 0xd)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)((int)local_3c + 0xd)" (* "*") (cast_expression "(byte *)((int)local_3c + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_3c + 0xd)" (( "(") (binary_expression "(int)local_3c + 0xd" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (+ "+") (number_literal "0xd")) () ")"))))) (; ";"))) (if_statement "if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }" (if "if") (parenthesized_expression "(((bVar3 & 3) == 0) || ((bVar3 & 3) == 3))" (( "(") (binary_expression "((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)" (parenthesized_expression "((bVar3 & 3) == 0)" (( "(") (binary_expression "(bVar3 & 3) == 0" (parenthesized_expression "(bVar3 & 3)" (( "(") (binary_expression "bVar3 & 3" (identifier "bVar3") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((bVar3 & 3) == 3)" (( "(") (binary_expression "(bVar3 & 3) == 3" (parenthesized_expression "(bVar3 & 3)" (( "(") (binary_expression "bVar3 & 3" (identifier "bVar3") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);\n              }" ({ "{") (expression_statement "local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);" (assignment_expression "local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28)" (field_expression "local_28._0_2_" (identifier "local_28") (. ".") (field_identifier "_0_2_")) (= "=") (call_expression "CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28)" (identifier "CONCAT11") (argument_list "((bVar3 & 0xfc) + 2,(undefined1)local_28)" (( "(") (binary_expression "(bVar3 & 0xfc) + 2" (parenthesized_expression "(bVar3 & 0xfc)" (( "(") (binary_expression "bVar3 & 0xfc" (identifier "bVar3") (& "&") (number_literal "0xfc")) () ")")) (+ "+") (number_literal "2")) (, ",") (cast_expression "(undefined1)local_28" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_28")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_0012deae;" (goto "goto") (statement_identifier "LAB_0012deae") (; ";")) (} "}"))) (} "}")))) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_5c = 0xfff1;" (assignment_expression "local_5c = 0xfff1" (identifier "local_5c") (= "=") (number_literal "0xfff1")) (; ";")) (} "}")))) (labeled_statement "LAB_0012deae:\n        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);" (statement_identifier "LAB_0012deae") (: ":") (expression_statement "uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);" (assignment_expression "uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70)" (identifier "uVar6") (= "=") (call_expression "FUN_0011ff30(local_68,__s,local_6c,1,local_70)" (identifier "FUN_0011ff30") (argument_list "(local_68,__s,local_6c,1,local_70)" (( "(") (identifier "local_68") (, ",") (identifier "__s") (, ",") (identifier "local_6c") (, ",") (number_literal "1") (, ",") (identifier "local_70") () ")")))) (; ";"))) (expression_statement "puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9);" (assignment_expression "puVar7 = (undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)\n                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" (identifier "FUN_0012d040") (argument_list "(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,\n                              local_5c,cVar4,uVar9)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "local_38") (, ",") (identifier "local_74") (, ",") (identifier "local_40") (, ",") (identifier "bVar14") (, ",") (identifier "ppppuVar11") (, ",") (identifier "local_5c") (, ",") (identifier "cVar4") (, ",") (identifier "uVar9") () ")"))))) (; ";")) (if_statement "if (puVar7 != (undefined4 *)0x0) {\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }" (if "if") (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }\n          iVar8 = *(int *)(DAT_00302378 + 8);\n          if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }\n          if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }\n          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;\n        }" ({ "{") (if_statement "if (local_7d != '\0') {\n            FUN_001236a0(param_1,puVar7);\n          }" (if "if") (parenthesized_expression "(local_7d != '\0')" (( "(") (binary_expression "local_7d != '\0'" (identifier "local_7d") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            FUN_001236a0(param_1,puVar7);\n          }" ({ "{") (expression_statement "FUN_001236a0(param_1,puVar7);" (call_expression "FUN_001236a0(param_1,puVar7)" (identifier "FUN_001236a0") (argument_list "(param_1,puVar7)" (( "(") (identifier "param_1") (, ",") (identifier "puVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_00302378 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (labeled_statement "LAB_0012e426:\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_0012e426") (: ":") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0005f0b0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))) {\n            FUN_00123a50(param_1,puVar7);\n          }" (if "if") (parenthesized_expression "(((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))))))" (( "(") (binary_expression "((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&\n             ((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))" (parenthesized_expression "((*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))))))" (( "(") (binary_expression "(*(char *)(iVar8 + 0x18b1) != '\0') &&\n              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))" (parenthesized_expression "(*(char *)(iVar8 + 0x18b1) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x18b1) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x18b1)" (* "*") (cast_expression "(char *)(iVar8 + 0x18b1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18b1)" (( "(") (binary_expression "iVar8 + 0x18b1" (identifier "iVar8") (+ "+") (number_literal "0x18b1")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))" (( "(") (parenthesized_expression "((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))))" (( "(") (binary_expression "(((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&\n               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))" (parenthesized_expression "(((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0))" (( "(") (binary_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&\n                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)" (parenthesized_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3))" (( "(") (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||\n                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)" (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x29) & 3)" (( "(") (binary_expression "*(byte *)((int)puVar7 + 0x29) & 3" (pointer_expression "*(byte *)((int)puVar7 + 0x29)" (* "*") (cast_expression "(byte *)((int)puVar7 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x29)" (( "(") (binary_expression "(int)puVar7 + 0x29" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)((int)puVar7 + 0x29) & 3) == 3)" (( "(") (binary_expression "(*(byte *)((int)puVar7 + 0x29) & 3) == 3" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x29) & 3)" (( "(") (binary_expression "*(byte *)((int)puVar7 + 0x29) & 3" (pointer_expression "*(byte *)((int)puVar7 + 0x29)" (* "*") (cast_expression "(byte *)((int)puVar7 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x29)" (( "(") (binary_expression "(int)puVar7 + 0x29" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x2b) & 0x10)" (( "(") (binary_expression "*(byte *)((int)puVar7 + 0x2b) & 0x10" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" (* "*") (cast_expression "(byte *)((int)puVar7 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x2b)" (( "(") (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))" (( "(") (parenthesized_expression "((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0))" (( "(") (binary_expression "(*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||\n                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)" (binary_expression "(*(byte *)((int)puVar7 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)puVar7 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)puVar7 + 0x2a) & 7" (pointer_expression "*(byte *)((int)puVar7 + 0x2a)" (* "*") (cast_expression "(byte *)((int)puVar7 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x2a)" (( "(") (binary_expression "(int)puVar7 + 0x2a" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(puVar7[2] + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar7[2] + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(puVar7[2] + 0x2c) & 1" (pointer_expression "*(byte *)(puVar7[2] + 0x2c)" (* "*") (cast_expression "(byte *)(puVar7[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7[2] + 0x2c)" (( "(") (binary_expression "puVar7[2] + 0x2c" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))))" (( "(") (parenthesized_expression "(*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))))" (( "(") (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0' ||\n              ((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))" (binary_expression "*(char *)(iVar8 + 0x1a25) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar8 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1a25)" (( "(") (binary_expression "iVar8 + 0x1a25" (identifier "iVar8") (+ "+") (number_literal "0x1a25")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "((*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))))" (( "(") (parenthesized_expression "(*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))))" (( "(") (binary_expression "*(char *)(iVar8 + 0x12b9) != '\0' ||\n               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))" (binary_expression "*(char *)(iVar8 + 0x12b9) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x12b9)" (* "*") (cast_expression "(char *)(iVar8 + 0x12b9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x12b9)" (( "(") (binary_expression "iVar8 + 0x12b9" (identifier "iVar8") (+ "+") (number_literal "0x12b9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')))" (( "(") (parenthesized_expression "(cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0'))" (( "(") (comma_expression "cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&\n                (local_45 == '\0')" (assignment_expression "cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45)" (identifier "cVar4") (= "=") (call_expression "FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45)" (identifier "FUN_001197d0") (argument_list "(iVar8 + 0x59a8,*puVar7,0,&local_45)" (( "(") (binary_expression "iVar8 + 0x59a8" (identifier "iVar8") (+ "+") (number_literal "0x59a8")) (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (number_literal "0") (, ",") (pointer_expression "&local_45" (& "&") (identifier "local_45")) () ")")))) (, ",") (binary_expression "cVar4 != '\0' &&\n                (local_45 == '\0')" (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(local_45 == '\0')" (( "(") (binary_expression "local_45 == '\0'" (identifier "local_45") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) () ")")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            FUN_00123a50(param_1,puVar7);\n          }" ({ "{") (expression_statement "FUN_00123a50(param_1,puVar7);" (call_expression "FUN_00123a50(param_1,puVar7)" (identifier "FUN_00123a50") (argument_list "(param_1,puVar7)" (( "(") (identifier "param_1") (, ",") (identifier "puVar7") () ")"))) (; ";")) (} "}"))) (if_statement "if (bVar13) {\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;\n          }" ({ "{") (expression_statement "*(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;" (assignment_expression "*(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" (* "*") (cast_expression "(byte *)((int)puVar7 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x2b)" (( "(") (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (binary_expression "*(byte *)((int)puVar7 + 0x2b) | 0x80" (pointer_expression "*(byte *)((int)puVar7 + 0x2b)" (* "*") (cast_expression "(byte *)((int)puVar7 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0x2b)" (( "(") (binary_expression "(int)puVar7 + 0x2b" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x2b")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 **)(*param_8 + local_50 * 4) = puVar7;" (assignment_expression "*(undefined4 **)(*param_8 + local_50 * 4) = puVar7" (pointer_expression "*(undefined4 **)(*param_8 + local_50 * 4)" (* "*") (cast_expression "(undefined4 **)(*param_8 + local_50 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_8 + local_50 * 4)" (( "(") (binary_expression "*param_8 + local_50 * 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (+ "+") (binary_expression "local_50 * 4" (identifier "local_50") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (} "}"))) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" (identifier "local_50") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3 = param_3 + 4;" (assignment_expression "param_3 = param_3 + 4" (identifier "param_3") (= "=") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (param_4 == local_50) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_4 == local_50)" (( "(") (binary_expression "param_4 == local_50" (identifier "param_4") (== "==") (identifier "local_50")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar6 = gettext("bad global symbol name offset %u at %zu");" (assignment_expression "uVar6 = gettext("bad global symbol name offset %u at %zu")" (identifier "uVar6") (= "=") (call_expression "gettext("bad global symbol name offset %u at %zu")" (identifier "gettext") (argument_list "("bad global symbol name offset %u at %zu")" (( "(") (string_literal ""bad global symbol name offset %u at %zu"" (" """) (string_content "bad global symbol name offset %u at %zu") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00091980(param_2,uVar6,ppuVar1,local_50);" (call_expression "FUN_00091980(param_2,uVar6,ppuVar1,local_50)" (identifier "FUN_00091980") (argument_list "(param_2,uVar6,ppuVar1,local_50)" (( "(") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "ppuVar1") (, ",") (identifier "local_50") () ")"))) (; ";")) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" (identifier "local_50") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3 = param_3 + 4;" (assignment_expression "param_3 = param_3 + 4" (identifier "param_3") (= "=") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 != local_50)" (( "(") (binary_expression "param_4 != local_50" (identifier "param_4") (!= "!=") (identifier "local_50")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: add_from_relobj<32, false>
   DWARF original prototype: void add_from_relobj<32,_false>(Symbol_table * this,
   Sized_relobj_file<32,_false> * relobj, uchar * syms, size_t count, size_t symndx_offset, char *
   sym_names, size_t sym_name_size, Symbols * sympointers, size_t * defined) */

void __thiscall
var_6::Symbol_table::add_from_relobj<32,var_44>
          (Symbol_table *this,Sized_relobj_file<32,var_44> *relobj,type_12 *var_40,size_t var_5,
          size_t var_27,char *var_13,size_t var_11,Symbols *sympointers,
          size_t *defined)

{
  undefined1 *puVar1;
  type_1 var_42;
  type_2 *var_3;
  type_3 *this_01;
  type_4 *var_48;
  type_5 ppOVar4;
  type_5 pcVar5;
  type_6 var_41;
  type_7 *pPVar7;
  bool bVar8;
  bool var_30;
  bool var_19;
  char *var_31;
  var_1<32> *var_45;
  type_8 *var_24;
  int var_16;
  type_9 var_12;
  char *var_14;
  type_1 *var_17;
  Sym<32,var_44> *pSVar16;
  type_1 *var_18;
  bool var_15;
  type_1 bVar19;
  bool var_46;
  bool local_7c;
  char *local_74;
  type_10 *local_70;
  size_t local_6c;
  type_11 *local_68;
  type_9 var_22;
  size_t var_26;
  bool var_49;
  Sym<32,var_44> sym;
  type_10 ver_key;
  Sym<32,var_44> sym2;
  type_10 name_key;
  type_12 var_33 [16];
  
  pPVar7 = parameters;
  bVar19 = 0;
  *defined = 0;
  if (pPVar7->target_ == (type_13 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/parameters.h",0x69,"target");
  }
  if (**(int **)(pPVar7->target_ + 4) != 0x20) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/symtab.cc",0x4a6,"add_from_relobj");
  }
  var_3 = (relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.input_file_;
  if (var_3 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/object.h",0x1ea,"input_file");
  }
  bVar8 = type_2::var_4(var_3);
  var_26 = 0;
  if (var_5 != 0) {
    do {
      while( true ) {
        (sympointers->super__Vector_base<var_6::type_14*,var_7::allocator<var_6::type_14*>var_8>var_9)._M_impl.
        _M_start[var_26] = (type_14 *)0x0;
        sym.p_ = (var_10<32> *)var_40;
        var_12 = *(type_9 *)var_40;
        if (var_11 <= var_12) break;
        var_14 = var_13 + var_12;
        if (parameters->options_ == (type_4 *)0x0) goto LAB_0012e426;
        if ((((parameters->options_->relocatable_).value == false) && (*var_14 == '_')) &&
           (var_14[1] == '_')) {
          var_16 = 0xf;
          var_19 = (type_1)var_14[2] < 0x5f;
          var_15 = var_14[2] == 0x5f;
          var_17 = (type_1 *)(var_14 + var_15);
          var_18 = (type_1 *)"__gnu_lto_slim";
          do {
            if (var_16 == 0) break;
            var_16 = var_16 + -1;
            var_19 = *var_17 < *var_18;
            var_15 = *var_17 == *var_18;
            var_17 = var_17 + (type_9)bVar19 * -2 + 1;
            var_18 = var_18 + (type_9)bVar19 * -2 + 1;
          } while (var_15);
          if ((!var_19 && !var_15) == var_19) {
            pcVar5 = (relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.name_.
                     _M_dataplus._M_p;
            var_31 = (char *)var_20("%s: plugin needed to handle lto object");
            var_21(var_31,pcVar5);
          }
        }
        var_22 = (type_9)(sym.p_)->st_shndx;
        if (var_22 < 0xff00) {
LAB_0012dfbd:
          var_12 = var_22;
          if (var_22 == 0) {
            var_22 = 0;
            var_19 = true;
            var_15 = false;
          }
          else {
            *defined = *defined + 1;
            ppOVar4 = (relobj->super_Sized_relobj<32,var_44>).super_Relobj.output_sections_.
                      super__Vector_base<var_6::type_15*,var_7::allocator<var_6::type_15*>var_8>
                      ._M_impl._M_start;
            if ((type_9)((int)(relobj->super_Sized_relobj<32,var_44>).super_Relobj.output_sections_.
                            super__Vector_base<var_6::type_15*,var_7::allocator<var_6::type_15*>var_8>
                            ._M_impl._M_finish - (int)ppOVar4 >> 2) <= var_22) {
                    /* WARNING: Subroutine does not return */
              var_2("../../gold/object.h",0x50b,"is_section_included");
            }
            if (ppOVar4[var_22] == (type_15 *)0x0) {
              var_19 = var_23(this,(type_16 *)relobj,var_22);
              if (var_19) {
                var_15 = false;
              }
              else {
                var_19 = true;
                var_15 = true;
                var_22 = 0;
              }
            }
            else {
              var_19 = true;
              var_15 = false;
            }
          }
        }
        else {
          if (var_22 == 0xffff) {
            var_24 = (relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.xindex_;
            if (var_24 == (type_8 *)0x0) {
              var_24 = (type_8 *)
                        (*(relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.
                          _vptr_Object[0x1b])(relobj);
              (relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.xindex_ = var_24;
            }
            var_22 = type_8::var_25
                                 (var_24,(type_17 *)relobj,var_26 + var_27);
            goto LAB_0012dfbd;
          }
          var_19 = false;
          var_15 = false;
          *defined = *defined + 1;
          var_12 = 0;
        }
        var_31 = var_28(var_14,0x40);
        ver_key = 0;
        var_30 = type_7::var_29(parameters);
        if (var_30 || var_31 == (char *)0x0) {
          local_6c = var_32(var_14);
          this_01 = this->version_script_;
          var_46 = (this_01->version_trees_).
                     super__Vector_base<var_6::Version_tree*,var_7::allocator<var_6::Version_tree*>var_8>.
                     _M_impl._M_start !=
                     (this_01->version_trees_).
                     super__Vector_base<var_6::Version_tree*,var_7::allocator<var_6::Version_tree*>var_8>.
                     _M_impl._M_finish && var_22 != 0;
          if (var_46) {
            var_33._8_4_ = var_33._8_4_ & 0xffffff00;
            var_33[4] = '\0';
            var_33[5] = '\0';
            var_33[6] = '\0';
            var_33[7] = '\0';
            var_33._0_4_ = var_33 + 8;
                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */
            var_46 = type_3::var_34
                                 (this_01,var_14,(type_18 *)var_33,(bool *)&name_key);
            if ((var_46) && ((char)name_key != '\0')) {
              if (var_33._4_4_ == 0) {
                var_46 = false;
                goto LAB_0012e2b0;
              }
                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */
              local_74 = var_35<var_36>::var_37
                                   (&this->namepool_,(char *)var_33._0_4_,var_33._4_4_,true,&ver_key
                                   );
              var_46 = false;
              local_7c = true;
            }
            else {
LAB_0012e2b0:
              local_7c = false;
              local_74 = (char *)0x0;
            }
            if ((type_12 *)var_33._0_4_ != var_33 + 8) {
              var_38((void *)var_33._0_4_);
            }
          }
          else {
            local_7c = false;
            local_74 = (char *)0x0;
          }
        }
        else {
          local_6c = (int)var_31 - (int)var_14;
          local_7c = var_31[1] == '@';
          if (local_7c) {
            var_31 = var_31 + 2;
          }
          else {
            var_31 = var_31 + 1;
          }
          local_74 = var_35<var_36>::var_39(&this->namepool_,var_31,true,&ver_key);
          var_46 = false;
        }
        local_68 = &this->namepool_;
        local_70 = &name_key;
        sym2.p_ = (var_10<32> *)var_33;
        pSVar16 = &sym2;
        if (bVar8) {
          var_33._0_4_ = *(type_19 *)var_40;
          var_33._4_4_ = *(type_19 *)(var_40 + 4);
          var_33._8_4_ = *(type_19 *)(var_40 + 8);
          var_33._12_4_ = *(type_19 *)(var_40 + 0xc);
          if (((var_12 == 0) || (var_19 == false)) || (relobj->e_type_ != 1)) {
            if (((relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.field_0x2c & 0x10
                ) != 0) {
              var_19 = false;
              var_22 = 0xfff1;
              goto LAB_0012e0e6;
            }
          }
          else {
            var_41 = (sym.p_)->st_value;
            var_16 = (*(relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.
                       _vptr_Object[0x13])(relobj,var_12);
            var_33._4_4_ = var_16 + var_41;
            if (((relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.field_0x2c & 0x10
                ) != 0) {
              var_19 = false;
              var_22 = 0xfff1;
LAB_0012e0e6:
              var_42 = (sym2.p_)->st_other;
              if (((var_42 & 3) == 0) || ((var_42 & 3) == 3)) {
                var_33[0xd] = (var_42 & 0xfc) + 2;
              }
              goto LAB_0012deae;
            }
          }
          var_19 = false;
          var_22 = 0xfff1;
        }
        else {
          if (((relobj->super_Sized_relobj<32,var_44>).super_Relobj.super_Object.field_0x2c & 0x10)
              != 0) {
            if (var_12 == 0) {
              if (var_19 != false) {
                var_19 = true;
                pSVar16 = &sym;
                goto LAB_0012deae;
              }
              var_19 = false;
            }
            var_33._0_4_ = *(type_19 *)var_40;
            var_33._4_4_ = *(type_19 *)(var_40 + 4);
            var_33._8_4_ = *(type_19 *)(var_40 + 8);
            var_33._12_4_ = *(type_19 *)(var_40 + 0xc);
            goto LAB_0012e0e6;
          }
          pSVar16 = &sym;
        }
LAB_0012deae:
        var_14 = var_35<var_36>::var_37
                            (local_68,var_14,local_6c,true,local_70);
        var_45 = var_43<32,var_44>
                           (this,(type_17 *)relobj,var_14,name_key,local_74,ver_key,local_7c,pSVar16
                            ,var_22,var_19,var_12);
        if (var_45 != (var_1<32> *)0x0) {
          if (var_46 != false) {
            var_47(this,&var_45->super_Symbol);
          }
          var_48 = parameters->options_;
          if (var_48 == (type_4 *)0x0) {
LAB_0012e426:
                    /* WARNING: Subroutine does not return */
            var_2("../../gold/parameters.h",0x5c,"options");
          }
          if ((((var_48->gc_sections_).value != false) &&
              ((((var_42 = (var_45->super_Symbol).field_0x29, (var_42 & 3) == 0 || ((var_42 & 3) == 3))
                && (((var_45->super_Symbol).field_0x2b & 0x10) == 0)) &&
               ((((var_45->super_Symbol).field_0x2a & 7) != 0 ||
                (((type_9)((var_45->super_Symbol).u1_.output_segment)->output_lists_[3].
                        super__Vector_base<var_6::Output_data*,var_7::allocator<var_6::Output_data*>var_8>.
                        _M_impl._M_end_of_storage & 1) == 0)))))) &&
             (((var_48->shared_).value != false ||
              (((var_48->export_dynamic_).value != false ||
               ((var_19 = type_3::var_34
                                    (&(var_48->dynamic_list_).version_script_info_,
                                     (var_45->super_Symbol).name_,(type_18 *)0x0,&var_49),
                var_19 && (var_49 == false)))))))) {
            var_50(this,&var_45->super_Symbol);
          }
          if (var_15) {
            puVar1 = &(var_45->super_Symbol).field_0x2b;
            *puVar1 = *puVar1 | 0x80;
          }
          (sympointers->super__Vector_base<var_6::type_14*,var_7::allocator<var_6::type_14*>var_8>var_9)._M_impl.
          _M_start[var_26] = &var_45->super_Symbol;
        }
        var_26 = var_26 + 1;
        var_40 = var_40 + 0x10;
        if (var_5 == var_26) {
          return;
        }
      }
      var_14 = (char *)var_20("bad global symbol name offset %u at %zu");
      Object::var_51((type_17 *)relobj,var_14,var_12,var_26);
      var_26 = var_26 + 1;
      var_40 = var_40 + 0x10;
    } while (var_5 != var_26);
  }
  return;
}


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

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

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

{
  undefined4 **ppuVar1;
  char cVar2;
  byte bVar3;
  char cVar4;
  char *pcVar5;
  undefined4 uVar6;
  undefined4 *puVar7;
  int iVar8;
  uint uVar9;
  char *__s;
  byte *pbVar10;
  undefined4 ****ppppuVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  byte bVar15;
  char local_7d;
  undefined4 local_74;
  undefined4 *local_70;
  size_t local_6c;
  int local_68;
  uint local_5c;
  int local_50;
  char local_45;
  uint **local_44;
  undefined4 local_40;
  undefined4 ***local_3c;
  undefined4 local_38;
  uint **local_34;
  uint *local_30;
  uint *local_2c;
  undefined4 local_28;
  
  iVar8 = DAT_00302378;
  bVar15 = 0;
  *param_9 = 0;
  if (*(int *)(iVar8 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",param_9);
  }
  if (**(int **)(*(int *)(iVar8 + 0xc) + 4) != 0x20) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/symtab.cc",0x4a6,"add_from_relobj");
  }
  if (param_2[7] == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/object.h",0x1ea,"input_file");
  }
  cVar2 = FUN_0005cf90(param_2[7]);
  local_50 = 0;
  if (param_4 != 0) {
    do {
      while( true ) {
        *(undefined4 *)(*param_8 + local_50 * 4) = 0;
        local_44 = (uint **)param_3;
        ppuVar1 = *param_3;
        if (param_7 <= ppuVar1) break;
        __s = (char *)((int)ppuVar1 + param_6);
        if (*(int *)(DAT_00302378 + 8) == 0) goto LAB_0012e426;
        if (((*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) == '\0') && (*__s == '_')) &&
           (__s[1] == '_')) {
          iVar8 = 0xf;
          bVar13 = (byte)__s[2] < 0x5f;
          bVar14 = __s[2] == 0x5f;
          pbVar10 = (byte *)(__s + bVar14);
          pbVar12 = (byte *)"__gnu_lto_slim";
          do {
            if (iVar8 == 0) break;
            iVar8 = iVar8 + -1;
            bVar13 = *pbVar10 < *pbVar12;
            bVar14 = *pbVar10 == *pbVar12;
            pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
            pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;
          } while (bVar14);
          if ((!bVar13 && !bVar14) == bVar13) {
            iVar8 = param_2[1];
            uVar6 = gettext("%s: plugin needed to handle lto object");
            FUN_0005ad60(uVar6,iVar8);
          }
        }
        local_5c = (uint)*(ushort *)((int)local_44 + 0xe);
        if (local_5c < 0xff00) {
LAB_0012dfbd:
          uVar9 = local_5c;
          if (local_5c == 0) {
            local_5c = 0;
            cVar4 = '\x01';
            bVar13 = false;
          }
          else {
            *param_9 = *param_9 + 1;
            if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= local_5c) {
                    /* WARNING: Subroutine does not return */
              FUN_0005f0b0("../../gold/object.h",0x50b,"is_section_included");
            }
            if (*(int *)(param_2[0xe] + local_5c * 4) == 0) {
              cVar4 = FUN_00122ff0(param_1,param_2,local_5c);
              if (cVar4 == '\0') {
                cVar4 = '\x01';
                bVar13 = true;
                local_5c = 0;
              }
              else {
                bVar13 = false;
              }
            }
            else {
              cVar4 = '\x01';
              bVar13 = false;
            }
          }
        }
        else {
          if (local_5c == 0xffff) {
            iVar8 = param_2[0xc];
            if (iVar8 == 0) {
              iVar8 = (**(code **)(*param_2 + 0x6c))(param_2);
              param_2[0xc] = iVar8;
            }
            local_5c = FUN_00091a00(iVar8,param_2,local_50 + param_5);
            goto LAB_0012dfbd;
          }
          cVar4 = '\0';
          bVar13 = false;
          *param_9 = *param_9 + 1;
          uVar9 = 0;
        }
        pcVar5 = strchr(__s,0x40);
        local_40 = 0;
        bVar3 = FUN_000ee5f0(DAT_00302378);
        if (((bVar3 ^ 1) & pcVar5 != (char *)0x0) == 0) {
          local_6c = strlen(__s);
          iVar8 = *(int *)(param_1 + 0x154);
          local_7d = *(int *)(iVar8 + 0x18) != *(int *)(iVar8 + 0x1c) && local_5c != 0;
          if ((bool)local_7d) {
            local_2c = (uint *)((uint)local_2c & 0xffffff00);
            local_30 = (uint *)0x0;
            local_34 = &local_2c;
                    /* try { // try from 0012e279 to 0012e27d has its CatchHandler @ 0012e4b0 */
            local_7d = FUN_001197d0(iVar8,__s,&local_34,&local_38);
            if ((local_7d == '\0') || ((char)local_38 == '\0')) {
LAB_0012e2b0:
              bVar14 = false;
              local_74 = 0;
            }
            else {
              if ((undefined4 **)local_30 == (undefined4 **)0x0) {
                local_7d = '\0';
                goto LAB_0012e2b0;
              }
                    /* try { // try from 0012e3c5 to 0012e3c9 has its CatchHandler @ 0012e4b0 */
              local_74 = FUN_0011ff30(param_1 + 0x40,local_34,local_30,1,&local_40);
              local_7d = '\0';
              bVar14 = true;
            }
            if (local_34 != &local_2c) {
              FUN_001807a0(local_34);
            }
          }
          else {
            bVar14 = false;
            local_74 = 0;
          }
        }
        else {
          local_6c = (int)pcVar5 - (int)__s;
          bVar14 = pcVar5[1] == '@';
          if (bVar14) {
            pcVar5 = pcVar5 + 2;
          }
          else {
            pcVar5 = pcVar5 + 1;
          }
          local_74 = FUN_001200e0(param_1 + 0x40,pcVar5,1,&local_40);
          local_7d = '\0';
        }
        local_68 = param_1 + 0x40;
        local_70 = &local_38;
        local_3c = &local_34;
        ppppuVar11 = &local_3c;
        if (cVar2 == '\0') {
          if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {
            if (uVar9 == 0) {
              if (cVar4 != '\0') {
                cVar4 = '\x01';
                ppppuVar11 = (undefined4 ****)&local_44;
                goto LAB_0012deae;
              }
              cVar4 = '\0';
            }
            local_34 = *param_3;
            local_30 = (uint *)param_3[1];
            local_2c = (uint *)param_3[2];
            local_28 = param_3[3];
            goto LAB_0012e0e6;
          }
          ppppuVar11 = (undefined4 ****)&local_44;
        }
        else {
          local_34 = *param_3;
          local_30 = (uint *)param_3[1];
          local_2c = (uint *)param_3[2];
          local_28 = param_3[3];
          if (((uVar9 == 0) || (cVar4 == '\0')) || (param_2[0x2a] != 1)) {
            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {
              cVar4 = '\0';
              local_5c = 0xfff1;
              goto LAB_0012e0e6;
            }
          }
          else {
            ppuVar1 = (undefined4 **)local_44[1];
            iVar8 = (**(code **)(*param_2 + 0x4c))(param_2,uVar9);
            local_30 = (uint *)(iVar8 + (int)ppuVar1);
            if ((*(byte *)(param_2 + 0xb) & 0x10) != 0) {
              cVar4 = '\0';
              local_5c = 0xfff1;
LAB_0012e0e6:
              bVar3 = *(byte *)((int)local_3c + 0xd);
              if (((bVar3 & 3) == 0) || ((bVar3 & 3) == 3)) {
                local_28._0_2_ = CONCAT11((bVar3 & 0xfc) + 2,(undefined1)local_28);
              }
              goto LAB_0012deae;
            }
          }
          cVar4 = '\0';
          local_5c = 0xfff1;
        }
LAB_0012deae:
        uVar6 = FUN_0011ff30(local_68,__s,local_6c,1,local_70);
        puVar7 = (undefined4 *)
                 FUN_0012d040(param_1,param_2,uVar6,local_38,local_74,local_40,bVar14,ppppuVar11,
                              local_5c,cVar4,uVar9);
        if (puVar7 != (undefined4 *)0x0) {
          if (local_7d != '\0') {
            FUN_001236a0(param_1,puVar7);
          }
          iVar8 = *(int *)(DAT_00302378 + 8);
          if (iVar8 == 0) {
LAB_0012e426:
                    /* WARNING: Subroutine does not return */
            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options");
          }
          if (((*(char *)(iVar8 + 0x18b1) != '\0') &&
              (((((*(byte *)((int)puVar7 + 0x29) & 3) == 0 ||
                 ((*(byte *)((int)puVar7 + 0x29) & 3) == 3)) &&
                ((*(byte *)((int)puVar7 + 0x2b) & 0x10) == 0)) &&
               (((*(byte *)((int)puVar7 + 0x2a) & 7) != 0 ||
                ((*(byte *)(puVar7[2] + 0x2c) & 1) == 0)))))) &&
             ((*(char *)(iVar8 + 0x1a25) != '\0' ||
              ((*(char *)(iVar8 + 0x12b9) != '\0' ||
               ((cVar4 = FUN_001197d0(iVar8 + 0x59a8,*puVar7,0,&local_45), cVar4 != '\0' &&
                (local_45 == '\0')))))))) {
            FUN_00123a50(param_1,puVar7);
          }
          if (bVar13) {
            *(byte *)((int)puVar7 + 0x2b) = *(byte *)((int)puVar7 + 0x2b) | 0x80;
          }
          *(undefined4 **)(*param_8 + local_50 * 4) = puVar7;
        }
        local_50 = local_50 + 1;
        param_3 = param_3 + 4;
        if (param_4 == local_50) {
          return;
        }
      }
      uVar6 = gettext("bad global symbol name offset %u at %zu");
      FUN_00091980(param_2,uVar6,ppuVar1,local_50);
      local_50 = local_50 + 1;
      param_3 = param_3 + 4;
    } while (param_4 != local_50);
  }
  return;
}

